1、继承
1_1、属性 行为 构造方法
(1)、将多个类中相同的属性以及行为提取到另外一个类中,然后让这些类去继承另外一个类,从就拥有了这个类当中的属性以及行为
class A extends B{}
(2)、A 继承了 B B是A的父类 A是B的子类
1_2、继承的好坏处
A、好处:提高了代码的复用性,维护性,多态的前提。
B、坏处:提高了耦合性---开发原则 高内聚低耦合
1_3、继承的特点
A、java中继承只支持单继承,不支持多继承。一个类只能有一个爸爸
B、java支持多层继承
1_4、成员变量在继承中的访问特点
A、变量名相同:就近原则
B、变量名不同:用谁就是谁
1_5、super
A、this--代表本类对象的引用
B、Super
(1)、代表父类的存储空间(可以理解为父类的引用)
(2)、继承是类与类之间的关系,与最终创建的对象无关
(3)、super.属性 super.行为 super(....)
1_6、构造方法
A、不可以被继承
B、创建子类对象的时候 会先执行父类的构造方法--创建子类对象的时候 会先执行父类的构造方法
C、private修饰的成员变量--不能够被直接继承而不是不能继承
D、创建子类对象的时候 子类构造方法的第一行默认会有一个 super() 去调用父类的无参构造。注意 super(...)只能在子类构造方法的第一行
1_7、成员方法
A、子类中有用子类的
B、子类中没有找父类要
C、父类中也没有报错
1_8、方法重写注意事项
A、被private修饰的方法不能够被重写
B、重写的方法的权限不能低于被重写的方法的权限
C、Public-->默认的权限 不写权限修饰符 就是默认的--default--->private
1_9、属性
A、就近原则
B、被private修饰的属性不能够直接被继承。需要通过get与set访问
1_10、行为
A、重写
B、被private修饰的方法不可以被重写
C、重写的方法权限不能小于被重写的方法
1_11、构造方法
A、不能够被继承
B、创建子类对象的时候,会先走父类的构造方法。用来初始化父类。
1_12、super
A、super.属性 super.方法 super(....)
2、多态
2_1、前提:有继承关系
2_2、格式:父类类型 对象名 = new 子类类型();
2_3、成员访问特点
A、属性---编译看左边 运行看左边
B、方法---编译看左边 运行看右边
2_4、好坏处
A、提高了扩展性
B、消除了不同子类之间的差异性,编写出通用代码,提高了代码的适用性。
C、具体体现:定义方法的时候,使用父类型作为参数,将来在使用的时候,使用具体的子类型参与操作。
D、弊端---不能使用子类中特有的方法
2_5、向上转型
A、父类引用指向子类对象
2_6、向下转型
A、父子引用转成子类对象
B、不要瞎转,他原先是谁你才能转成谁
C、比如 动物 安倍 = new 狗(); 你可以将 安倍强转成狗类的对象 因为 安倍就是狗 你不能将 安培强转成人
D、向下转型之前 这个对象肯定发生过向上的转型
E、ClassCastException 类型转换异常
F、通过向下转型 我们可以使用子类中特有的成员方法