java接口和抽象类的区别和作用(功能、用途、好处)

一、区别

interface:只有方法没有具体实现  方法只能是public或者不写默认为public ;

变量全为final——不可修改。即接口本身的特性规定了只能定义常量,否则实现的子类a改变了其定义的值,那么其他实现类的值都将随之变化,这样就成了抽象类的特征了,失去了接口更高级的抽象意义。

abstract class:方法可以有具体实现,或者是abstract抽象方法

接口就是一个抽象类,没有变量和方法实现。如果一个抽象类所有的方法都是抽象的就可以将此类用接口来定义。

二、优点

interface:主要针对于功能、动作。将拥有这些动作的类实现此接口如:鸟、飞机都能fly();

体现了开闭原则:对修改关闭,对扩展开放;

abstract class:将拥有共同属性 特征的类继承此类,父类中添加新方法时子类将全部拥有而不用逐一去新增。

当子类拥有父类中的特性是便可以去extends,体现了代码的复用性。继承——灵活性;实现——严谨性;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值