面向对象(2)
继承:
1.作用:代码复用
2.通过extends来实现继承
3.超类/父类:所有派生类所共有的属性和行为
派生类/子类:派生类所特有的属性和行为
4.派生类继承超类后,派生类具有:派生类的+超类的
5.一个超类可以有多个派生类
一个派生类只能有一个超类------------单一继承
6.具有传递性
7.java规定:构造派生类之前必须先构造超类
在派生类的构造方法中若自己不调用超类的构造方法
-----------则默认super()调用超类的无参构造方法
在派生类的构造方法中若自己调用了超类的构造方法
-----------则不再默认提供
super()调用超类构造方法,必须位于派生类构造的第一行
super:指代当前对象的超类对象
super的用法:
1.super.成员变量名------------访问超类的成员变量
2.super.方法名()--------------调用超类的方法-------明天讲
3.super()---------------------调用超类的构造方法
接口:
1.是一种数据类型(引用类型)
2.由interface定义
3.只能包含常量和抽象方法
4.不能被实例化
5.接口是需要被实现/继承的,实现类/派生类:
必须重写接口中的所有抽象方法
6.一个类可以实现多个接口,用逗号分隔
若又继承又实现时,应先继承后实现
7.接口可以继承接口(多个)
设计规则:
1.将所有派生类所共有的属性和行为,抽到超类中--------------抽共性
2.派生类的行为都一样,设计为普通方法
派生类的行为不一样,设计为抽象方法
3.将部分派生类所共有的行为,抽到接口中
符合既是也是的关系时,使用接口
接口是对继承的单根性的扩展---------------------------------------实现多继承
多态:
1.意义:
1.1)同一类型的引用,指向不同的对象时,有不同的实现
---------------行为的多态:cut(),run(),step()...
1.2)同一个对象,被造型为不同的类型时,有不同的功能
---------------对象的多态:我,你,水...
2.向上造型/自动类型转换:
2.1)超类型的引用指向派生类的对象
2.2)能造型成为的数据类型有: 超类+所实现的接口
2.3)能点出来什么,看引用的类型
3.强制类型转换,成功的条件只有如下两种:
3.1)引用所指向的对象,就是该类型
3.2)引用所指向的对象,实现了该接口或继承了该类
4.强转时若不符合如上条件,则发生ClassCastException类型转换异常
建议:强转之前先通过instanceof判断引用指向的对象是否是该类型

浙公网安备 33010602011771号