java抽象类与接口的区别抽象类与接口的特性是什么

接口和抽象类的概念不一样。接口是对动作的抽象,抽象类是对根源的抽象。

抽象类表示的是个对象,什么对象。接口表示的是对象的功能,能做什么。

举个例子:男人(对象)和女人(对象),这两个类(对象)他们可以抽象为人。公猫和母猫可以抽象为猫。

人可以吃饭,可以睡觉,猫呢也可以吃饭和睡觉,那么这个“吃饭”、“睡觉”就是某个特定的功能,我们可以把“吃饭”和“睡觉”定义成一个接口中的两个方法。

然后我们可让人和猫去实现这个接口,即人可以吃饭睡觉猫也可以.但是我们却不能找出一个动物它既是人又是猫的,可见抽象类只能单继承,而动物都可以吃饭和睡觉那么接口是可以多继承的。

区别列举出来的话那就是:
1、一个类只能进行单继承其他类,但可以实现多个接口。
2、接口中所有的方法都是抽象的,在接口中定义的方法不能有实体,而在抽象类可以实现部分方法。
3、 接口里面所有的方法的默认修饰符为public abstract,接口里的成员变量默认的修饰符为pulbic static final。

4、接口和抽象类只能是抽象类实现接口。

抽象类的功能要比接口的多,但是,定义抽象类的代价高。因为高级语言来说(从实际设计上来说也是)每个类只能继承一个类。在这个类中,你必须继承或编写出其所有子类的

所有共性。虽然接口在功能上会弱化许多,但是它只是针对一个动作的描述。而且你可以在一个类中同时实现多个接口。在设计阶段会降低难度的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值