接口和抽象类的选择

来源:互联网 发布:windows 8.1中文版下载 编辑:程序博客网 时间:2024/04/28 10:17

在接口和抽象类的选择上,必须遵守这样一个原则:行为模型应该总是通过接口而不是抽象类定义。

 

抽象类如若想要实例化,则必须在构造方法的后面加上{}块,并且在里面实现抽象方法。

 

面向抽象类编程,对一个基类的实例化,则这个对象只能调用基类的方法,而子类的实例化,可以掉用继承的基类的方法和该类内部的方法。

 

抽象类的好处就是能够保证层次关系,避免代码重复,但往往导致过于复杂的继承关系,通过接口定义行为,能够有效的分离行为和实现,为代码维护带来方便。

 

从java中看到接口,第一个想到的可能是C++的多继承和abstract关键字。从另一个角度实现多继承是接口的功能之一,接口的存在可以使java的对象向上转型为多个基类型,并且和抽象类一样,防止他人创建该类的对象,因为接口不允许创建对象。

 

接口中的字段只是被存储在该接口的静态存储区域内,而不属于该接口。

 

接口中的方法可以声明为public,也可以不声明,否则为默认访问类型,java编译器不允许这种情况发生。

原创粉丝点击