目录
一、上集回顾
在上篇的日记中,我们学习了继承的构造函数、代码块及什么是多态。忘记了的可以去复习一下学习日记:java——继承补充及多态-CSDN博客
二、本节目标
1、了解什么是抽象类,掌握相关的特征和注意事项,能够写出简单的相关代码。
2、了解什么是接口,掌握相关的特征和注意事项,能够写出简单的相关代码。
三、正式内容
1、抽象类
<1>、抽象类的概念
没有具体实现的类即为抽象类。
<2>、抽象类的语法规则
访问权限操作符 + abstract + class + 类名 { }
即可创建一个抽象类,和普通类的组成方式(访问权限操作符 + class + 类名 { }),做对比我们发现抽象只是多了个abstract修饰符而已。
有抽象类,有没有抽象属性?抽象行为?,抽象属性可能有但我没有学习到,不过抽象方法还是有的。和抽象类一样,抽象方法也被abstract修饰,其语法格式为:访问权限操作符 + abstract + 返回值类型 + 方法名(),发现了没?和普通方法相比它还没有方法体(具体的实现)。
需要注意的是:
1.抽象类中可以有正常的成员变量、方法,构造函数等其他类中可以有的东西。
2.普通类中不可含有被abstract修饰的方法。
<3>.抽象类的特性
1.抽象类不能被实例化。
2.抽象类不能被private、final修饰。
3.抽象方法不能被private、final、static修饰。
4.若抽象方法是父类则继承它的子类必须重写父类中的抽象方法,除非该子类也为被abstract修饰的抽象类。
5.抽象类中可以没抽象方法,有抽象方法的一定是抽象类。
6.A是B的抽象父类,B是C的抽象父类,C是普通类。C要对A、B中的抽象方法进行重写
2、接口
<1>、接口的概念
<2>、接口的语法规则
public + interface(接口关键字和类的class差不多)+接口名
<3>、接口的特性
1.接口中的方法均默认为被( public + abstract)修饰的抽象方法,且不可更改
2.接口中的变量默认被(public + static + final)修饰,且不可更改
3.接口不能实例化
4.接口不能直接使用,需要一个类连接它,并实现其内部的所有抽象方法,当然这个类是抽象类的话不用实现。
5.接口中不可以静态代码块和构造函数
6.接口存在继承关系,类连接具有继承关系的接口应实现父、子类接口的抽象方法
7.一个类可以连接多个接口,每个接口中的抽象方法都要实现
四、作者的话
学完抽象类和接口后,赞不赞同 我说 的接口就是比抽象类还抽象的类。前两天没更新是因为心情不好没学习。今天,天空黑暗、大风肆虐、闪电不断、独守空房,一边快吓niao了,一边写下了这篇日记。最后感谢您的观看!