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,里面有个策略模式,那里的针对接口编程运用的非常棒。