目前小弟对接口概念理解的不是太清晰,怎样实现的方法我明白了就是不知道接口的作用到底是什么?请高手帮忙解答,先谢了
解决方案 »
- java SE 怎么实现文件传输?
- 求一个北京时间的正则表达式
- 泛型的问题
- Exception in thread "main" java.lang.NoClassDefFoundError:
- 新手求助:文件拷贝以及数据库操作
- 谁能解释啊。。。Thinking in Java的例子
- 关于JPopupMenu显示的文本问题!!!
- 菜鸟问题,帮帮忙!!!
- protected和static关键字的疑惑!
- 小弟初学Java有一个疑问!!!
- 现在已生成了jdom.rar,怎么样才能让imports 认识 jdom 的packet和class
- 请问各位大侠,将读取文件时,采用逐个字节读取和逐行读取哪种效率较高?
你可以通过不同的class来实现这个接口,在实现类中则可以用不同的方式实现接口中声明的方法,
例如有接口
public interface Computer{
public String getInfomation();
}
有以下两个实现类
public class LCDComputer implements Computer{
public String getInformation(){
return "LCD";
}
}public class CRTComputer implements Computer{
public String getInformation(){
return "CRT";
}
}
在实际应用中,可以通过为接口Computer指定不同的实现类,从而得到不同的结果。
而调用接口中的方法的地方就不用理会接口的方法具体是怎么实现的。类似常说的“透明”这一概念。如果要修改接口方法的实现,也只需要让接口指向新的实现类就行了,而不必修改上层的调用方法
2.接口不做任何事,只声明方法和变量,它声明的方法相当全局变量的作用。任何调用它的子类或继承它的接口都必须是抽象类,否则是不能调用的。而继承或实现该接口的类可以对接口中的方法进行覆盖,让接口中的方法实现某个具体的功能。
3.一个类可以实现多个接口,而继承的话只能单个,不要说多个继承关系没有用,看看javadoc,有几个类不是实现了一个以上的接口,如 java.lang.String他实现了CharSequence, Comparable, Serializable 三个接口
4.接口不是类,它是一组对类的要求,你可以使用接口来声明变量,然后指向实现了这个接口的类,接口可以被继承,可以从最抽象的接口一直到比较具体的
5.引入接口的关键原因是java不支持多重继承,这主要是因为c++中多重继承的语法太过复杂
interface 是一种契约(contract)表示法,不带实现,当你想要支持单一或多个interface继承,或为了确定某一et interface时使用,只允许有public 函数及public static final 常量。
public interface Computer{
public String getInfomation();
}
public class LCDComputer implements Computer{
public String getInformation(){
return "LCD";
}
}public class CRTComputer implements Computer{
public String getInformation(){
return "CRT";
}
}
为什么还要接口啊,直接调用CRTCvomputerv.getInformation()不就行了么?我也是
初学者,觉的接口的概念很不好懂。还有内部类。请高手指正
你那样是具体指明了类型
如果用接口,不用具体指明
也就是所谓的polymophism
你这样想一下,在一个开发团队中,A负责b/s程序的UI层(就是jsp页面等)的数据展示及获取,B负责把UI层的数据(VO)存入或从数据库中取出来,B向A提供POJO,A不管B是怎样把数据存放或从数据中读取出来的,A只向B要POJO,然后把POJO转成VO使用即可,这样在开发时,A完成工作的进度比较快,B完成的进度稍慢,这时使用接口的话,A不管B的工作做到什么程序了,只需要调用A和B约定好的接口,把VO丢给B就行了,B可以根据接口慢慢写具体实现类。另外,假设B在项目之初操作数据库使用的是JDBC技术,后来发现用hibernate这个玩具不错,如果A和B使用接口来进行数据传递的话,那么不管B把操作数据库的类改成什么样,只要还是遵循A和B约定的接口去实现的,那么A什么工作都不用做了。这个假设的前提是项目使用的spring哟。说了一大堆,也不知道你明白没有。