编程系统分析师

接口和抽象类

2020-01-13  本文已影响0人  一觉睡到丶小时候

抽象类

抽象方法

抽象类

具有抽象方法的类就是抽象类,抽象类中才可以写抽象方法。

抽象类的特点

抽象类的使用

步骤:
1、定义抽象类的子类
2、重写抽象类的所有抽象方法
3、创建子类对象,调用重写后的方法

细节

问:反正子类都要重新定义自己的功能,为什么还要继承具有抽象方法的抽象类?
答:因为继承了抽象类后就必须重写所有的抽象方法,这表示当前的子类是属于父类继承体系的一份子,作为该类的子类就必须具备此功能。
问:抽象类中不定义抽象方法的意义是什么?
答:一个类使用abstract修饰后,它就不能被实例化了,就必须通过子类的继承和重写才有意义。这是设计模式的体现。
问:抽象类一定是父类吗?
答:从代码角度来说不一定;从实际意义和思考角度来说,抽象类一定是一个父类。

抽象可以再抽象

比如A抽象类,B继承A。B本来是必须实现A中的方法的,但是B不想实现A中的方法,它还想再添加两个抽象方法或者不添加,让其他人去实现这个B那么可以给B加abstract。

使用匿名内部类的方法

创建抽象类的子类对象,重写方法后,就可以直接调用方法
格式:
new 抽象类名 / 接口名(){ // 重写所有抽象方法 };还可以在分号前调用方法
这个有点像JavaScript中的var x= function(){
//函数体
};的方式

匿名对象的创建

接口

接口的好处

问:接口是什么呢?
答:接口是一个比抽象类更加抽象的“抽象类”,它是功能的集合。
它使用interface关键字代替了class。

注:接口的源文件还是.java文件,并且编译后的文件还是.class文件,所以说接口是一个特殊的类

接口中成员的特点

接口和抽象类的异同

问:接口和抽象类用哪个呢?

答:推荐使用接口,避免了单继承的局限性;当子类有共性方法,且这些方法的具体实现也相同时。

Java 1.8的新特性

在接口中也可以定义非抽象方法啦!!!
格式:

default 返回类型 方法名(){

}

总结

额外

个人博客
腾讯云社区
掘金
CSDN
公众号:

wx.jpg

原文:https://www.cnblogs.com/macht/p/11621491.html#387318856

上一篇下一篇

猜你喜欢

热点阅读