1、继承
描述的是事物之间的所属关系
好处:
提高代码的复用性,让类与类之间产生关系,是多态的前提
特点:java中类只支持单继承不支持多层继承
2、子父类间成员变量的使用
一 类的组成
构造方法
成员变量
成员方法
二 通过子类访问一个成员变量的时候查找规则是怎样的
A:首先在子类的局部位置找 有就用
B:在子类的成员位置找 有就用
C:在父类的成员位置找
D:父类成员位置没有就报错
子类访问不到父类的局部变量.
3、子父类间成员方法的注意事项
一 子父类间的成员方法需要注意的地方
A:父类中的私有方法不能被重写
B:子类方法的访问权限修饰符要大于等于父类的访问权限修饰符
C:静态的方法只能重写静态方法
二 什么时候考虑使用重写
当子类需要父类的功能,而子类又有自己特有的方法时,可以重写父类的方法
这样既可以使用父类的功能又可以定义子类特有的内容.
4、子父类间构造方法的执行顺序
一 为什么父类的构造会在子类之前执行?
A:因为子类的构造方法中第一行会默认有一个super()会调用父类的无参构造.
B:因为可以用子类对象调用父类中的非私有成员,那么必然要对父类进行初始化
注意:如果在构造方法中手动给出 this() 或 super()的话这两个代码一定是第一行有效代码.
二 如果父类中没有无参的构造方法,那么,子类的super()就调用不到父类的构造了肿么办?
可以在子类中手动给出 super(参数)来访问父类的带参构造
一个类的构造方法第一行一定有个super(),假如说这个类没有继承的话,那么super()访问的是谁呢?
访问的是Object类中的构造方法.
5、子类如何使用父类的私有成员变量
一 如果成员变量被私有了,那么,在子类中怎么使用呢?
子类不能直接去使用父类的私有成员
如果子类想要访问父类私有成员的话 只能通过get和set方法或者 用父类的带参构造赋值
6、final关键字的概述和使用
final 可以修饰谁?
类:不能被继承
成员变量:就变成了一个常量
成员方法:不可以被重写
7、一个完整的有子父关系的内存图
8、继承中的构造方法
子类无参构造方法,不可以访问父类有参构造方法,只能访问父类无参构造方法
子类有参构造方法,可以访问父类有参构造方法,也可以访问父类无参构造方法
为什么默认有构造方法?
因为子类会自动具备父类中非私有数据,那么,这个数据的初始化
靠父类完成。所以,会去先调用父类的构造方法对数据进行初始化。
如果父类中没有无参构造方法,那么,该怎么办呢?
A:可以通过super(参数)去访问父类中的带参构造方法。
B:可以通过this(参数...)去访问本类中的其他构造方法。不推荐使用。
|
|