面向对象第三篇
2018-11-26 本文已影响0人
陈宇航1841
一、抽象类
实例:
描述:定义一个抽象类Shape,具有受保护类型的x和y属性,以及公有的抽象方法获得面积。
Rectangle类继承于Shape类,在构造方法中给父类属性x和y初始化,并重写父类中求面积的抽象方法。
Triangle类也继承于Shape类,在构造方法中给父类属性x和y初始化,并重写父类中求面积的抽象方法。
Cube类继承于Rectangle类,独有的属性是height,其构造方法需要调用父类的构造方法完成对x和y的初始化(立方体的底面长和宽),并对height初始化;独有的方法是求体积。
创建上转型对象,求矩形的面积和三角形面积。
创建对象,求立方体的体积。
代码:
shape类

Triangle类:

Rectangle类:

Cube类:

主程序ShapeTest:

运行效果:

二、super关键字的三个作用
1、调用父类构造方法

2、访问父类属性

3、调用父类成员方法

三、抽象类的说明
抽象类中可以有抽象方法和非抽象方法共存
如果一个类中含有抽象方法,则该类一定是抽象类
子类如果继承抽象类,必须强制重写父类中的抽象方法。
接口
和抽象类相似,但是更严格
接口中只能有抽象方法
一个类可以实现多个接口
代码
Fly接口

飞行物抽象类

Plane类

Bird类

FlyTest

运行结果
