java中接口和抽象类的区别(保证你一看就懂)

时间:2021-2-27 作者:admin

先单独说一点,让你可以在朋友面前装逼:接口也能被继承,只不过是被接口继承

对比:

1、都能包含抽象的方法,这些抽象的方法用于描述类具备的功能,不提供具体的实现(jdk1.8允许接口有一个default的实现方法)
2、接口是对事物行为的抽象,而抽象类是对事务本质的抽象;
3、接口中的变量必须给出初始值,抽象类可以不给;
4、一个类只能继承一个抽象类,但可以实现多个接口;
5、抽象类中可以写非抽象的方法,从而避免在子类中重复书写它们,这样可以提高代码的复用性,这是抽象类的优势;接口中只能有抽象的方法;

针对第二点和第四点举个例帮助理解:

对于抽象类:比方说有公鸡、母鸡、公狗、母狗,我们可以抽象出两个更高级的类,鸡类和狗类,因为你不能又是鸡又是狗,所以你只能继承其中一个,这就是为什么抽象类只能单继承

对于接口:众所周知,鸡都会唱、跳、rap,于是,我们可以把这些鸡的基本操作抽象成接口A,而有的鸡通过练习两年半可能学会打篮球,那么对于这种鸡的高端操作我们可以再抽象出一个接口B,重点来了,对于常规鸡,这种鸡只会唱跳rap,所以只需要实现接口A;那对于一些高端鸡,这种鸡既会唱跳rap又会打篮球,我们就同时实现接口A和接口B,这就是为什么接口可以多实现,skr~;


我话说完
嘤~ 好紧张
skr~

声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。