接口和抽象类的选择

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

 

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

 

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

 

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

 

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

 

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

 

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值