Java学习笔记;接口与抽象类的区别
2019-03-07 14:15
162 查看
(自我理解)
由于继承的定义可知,一个子类只能有一个父类,却可以实现多个接口
这就导致了接口远比抽象类更加灵活。
假若有2个类;公交车类与计程车类;
它们都继承了一个抽象类–制动类;制动类包含了2个抽象方法:启动和刹车。显然这都是合理的,2类车都可以启动和刹车。
但假如公交车类想要多一个播报车站的功能时,其不可能再去继承一个含有abstrac播报车站方法的抽象类。(只能有一个父类)但接口可以有多个,此时可以单独写一个只含有abstrac播报车站方法的接口。
虽然可以将abstrac播报车站方法加入到制动抽象类中,但第一这不合条理(功能上没啥问题),播报车站功能不属于制动类,第二,因为计程车也继承了该制动类,必须重写该类所有的抽象方法,也就是说计程车也要重写这个播报车站方法却不需要这个功能,而且假如计程车也需要一个自己独有的方法(比如去随机地点接客),总不能也把这个方法也加入抽象类再让公交车类去重写一遍吧。何况这才2个类,更多类则更复杂。
语法区别
抽象方法只能存在于抽象类中,抽象类可以含有非抽象方法。
接口体中只能声明变量(没有变量)且只有抽象方法。
抽象类中抽象方法不能用static修饰(必须是实例方法)
接口中常量权限一定是public、final,但其修饰字符可以被省略。且接口中的方法权限一定问public abstract,也可以省略修饰词。
抽象类的子类必须重写该类的所有抽象方法
实现接口的类必须重写接口体中的所有方法(接口体中只能含有抽象方法),且重写的方法的权限必须是public(修饰词不能少,重写不允许减低方法的权限,可以提高权限)。
相关文章推荐
- 学习《详细解析Java中抽象类和接口的区别》笔记
- Java学习笔记之接口和抽象类的区别,及选择问题,看完之后就懂了。
- Java学习笔记 --- 抽象类和接口的区别与联系
- Java学习笔记1:详细解析Java中抽象类和接口的区别
- Java学习笔记-抽象类和接口的区别
- 黑马程序员--Java基础学习笔记之抽象类和接口、内存结构分析、Java APIs
- 抽象类和接口的区别——学习笔记
- java学习笔记(五)----super用法,final用法,抽象类,接口
- java学习笔记之抽象类,接口,多态
- JAVA 基础笔记|抽象类与接口的区别
- Java之学习笔记(22)------------抽象类和接口
- 0026 Java学习笔记-面向对象-抽象类、接口
- Java基础学习笔记09——(final关键字,多态,抽象类,接口)
- 4000 Java 学习—抽象类和接口的区别
- 学习笔记之接口和抽象类区别
- 学习笔记 Java_ch03_多态_抽象类_最终类_ch04_接口 2014.7.26
- JAVA学习笔记整理三(抽象类、接口、匿名类)
- 01-java学习笔记【接口与抽象类】
- JAVA学习笔记(抽象类和接口)
- Java学习笔记:接口和抽象类 之间的探讨