问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java中什么时候使用接口啊!

发布网友 发布时间:2022-05-18 05:35

我来回答

4个回答

热心网友 时间:2023-10-09 19:24

1.Java里的多继承只能靠接口实现
2.接口的最主要的作用是达到统一访问(Java的多态特性),就是在创建对象的时候用接口创建,【接口名】 【对象名】=new 【实现接口的类】,这样你像用哪个类的对象就可以new哪个对象了,不需要改原来的代码,就和你的USB接口一样,插什么读什么,就是这个原理。就像你问的,都有个method1的方法,如果我用接口,我上面就可以one.method1();是吧?那样我new a();就是用a的方法,new b()就是用b的方法
这样不方便吗?
这个就叫统一访问,因为你实现这个接口的类的方法名相同,但是实现内容不同
我用接口来定义对象不就可以做到统一访问了吗?接口主要针对多个类实现它来说的,要是只有一个类当然可以不用接口了.你这样想,我做一个USB接口,有个read()()抽象方法,然后mp3类实现,U盘类实现,移动硬盘类实现,这样我用的时候用USB a=new 【类名】;这样a.read()();要是我类名里写U盘,就读U盘,写mp3就读mp3,而这个名字可以从属性文件里读,你写哪个就用哪个了,呵呵。

热心网友 时间:2023-10-09 19:24

举个列子吧:如果你现在需要去用到数据库特有的功能,数据库可能有很多种,对这一特有功能的实现不同,因此使用java调用的方式也不同,但是返回的结果是相同的?我们可以使用接口来解决。如下:

public class User{
    private DB db;
    
    public User (DB db) {
        this.db = db;
    }
    
    public void doSomething(){
        if ( db.doDB() ) {
            System.out.println("ok");
        } else {
            System.out.println("fail");
        }
    }
    
    public static void main(String[] args){
        DB dbMysql = new DBMysql();
        User u1 = new User(dbMysql);
        ul.doSomething();
        
        
        DB dbOracle = new DBOracle();
        User u1 = new User(dbOracle);
        ul.doSomething();
        
        // 因此可以在不更改User类的情况下任意更换数据库
        DB dbMS = new DBMSServer();
        User u1 = new User(dbMS);
        ul.doSomething();
    }
}

public interface DB {
    // 定义操作数据库特定功能的规范
    public boolean doDB();
}

// Mysql
public class DBMysql implements DB {
    public boolean doDB(){
        // Mysql的操作
    }
}

// Oracle
public class DBOracle implements DB {
    public boolean doDB(){
        // Oracle的操作
    }
}

// MS Server
public class DBMSServer implements DB {
    public boolean doDB(){
        // MS Server的操作
    }
}

热心网友 时间:2023-10-09 19:25

接口你可以理解成,数据类型。它就是专门给调用者提供某种类型数据的,在设计程序的时候有很多时候不知道这个数据以后会被谁调用,所以会留接口出来,以方便调用者调用它。

热心网友 时间:2023-10-09 19:25

任何时候都要想到接口,只有具体实现的时候再考虑实现类。java中常用的原则:针对接口编程,而非实现编程。

当程序员有一定的开发基础后,建议看看设计模式的书籍,推荐的有headfirst,里面有个策略模式,那里的针对接口编程运用的非常棒。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
王卡专属免流包是什么意思 腾讯王卡专属流量是什么意思 人防临空墙排烟机房可以留洞吗? 瑞士转机的问题? 雅阁、第九代凯美瑞、迈腾,大空间的中级车推荐 云顶之弈双人排位介绍 金铲铲之战 金铲铲段位相差多少可以一起打? 现在上海办理居住证需要本人去吗 34周加5天是几个月 孕34周是几个月了 孕34周如何预防早产 钱塘江大潮在哪里 钱塘江大潮在哪儿? 请教华硕笔记本 WIN7 64 如何更改 超级用户名 我心血来潮给电脑设置了开机密码,就只设置了系统超级用户“administrator“的密码,进不去了,怎么办啊? 帮帮忙,华硕笔记本,设置了超级用户密码 华硕笔记本BIOS系统设置了错误的超级用户密码,无法进入BIOS 系统,按回车虽然能进,但无法修改?怎么办a? pp华硕笔记本电脑怎么生管理员 华硕笔记本电脑破解密码,只有超级用户,未开机 华硕笔记本电脑忘记了登陆密码怎么办,登陆时系统提示用户名为超级用户 现在学挖掘机能赚钱?学轮挖还是履带式挖机? 开挖掘机现在还赚钱吗? 今天在网上查了一下,开挖掘机的也不是很挣钱呀!有的开了好多年才4000 本来想学呢?现在没精神了。 旋挖钻机和挖机哪个更挣钱? 现在挖掘机行业能赚钱吗?过两年还能吗?越具体越好!谢谢了~~~~~~ 我想租台别人的挖掘机,然后放到工地上,能赚钱吗 现在投资挖机还好赚钱吗 挖掘机赚钱吗 传说中挖机虚拟金币是什么情况 冥王和阎王的区别是什么? 网上购物需注意那些问题? 请问java中什么时候用抽象类Abstractclass,什么时候用接口interface? java编程中什么情况下用接口 JAVA:什么时候用到接口,什么时候用到抽象类? java中何时用继承何时用接口? java中什么时候用接口合适 java接口的作用?什么情况下应该用接口? java有了抽象类为什么还要引入接口?什么时候使用接口? 在JAVA里面什么时候用到接口 什么时候用到继承! 机械能与内能又什么区别? 想换新机,徘徊在Oppo R9ST与Vivo的X9L之间,哪个更值得拥有 什么是机械能,生物能,内能,动能? 化学实验报告(银镜反应、风暴瓶) 化学的实验报告主要从哪几方面来写? 怎么在微信里制作自己相册 远洋船员一月工资多少?? 苹果手机用steamlink玩云顶之弈黑屏? 远洋普通船员的工资待遇怎么样?水手机工!我38岁了,家庭压力大!想多赚点钱!培训要几个月,费用多少 是谁在踢足球?用英语怎么回答 远洋海员一个月工资是多少? 94年世界杯意大利队员有谁还在踢球!