Unit8 继承部分学习笔记
1.为什么要使用继承(目的)?
- 答:类的重用:重复使用已有的类
2.UML中类的继承怎么表示?
- 继承的关键词是:extends
- 父类(super class)和子类(sub class)
3.继承的语法规则是什么?
- 父类中的属性和方法可以被继承,但是是有条件的;到底能不能继承,主要看访问控制符private、默认、protected、public。
4.访问控制符的使用规则是什么?
- 访问控制符能修饰什么?类,属性,方法,但是不能修饰局部变量.
- private不可以被继承,也不能修饰外部类和局部变量,可以修饰属性、构造方法和一般方法。
- protected不可以修饰外部类和局部变量,可以修饰属性、构造方法和一般方法。
- public不能修饰局部变量
- 构造方法能否被private和protected修饰? 答:能
5.构造方法能被继承么?
- 答:不能。
6.创建子类对象时,父类的构造方法会被调用吗?
- 答:会,创建子类的时候,父类的无参构造方法会被自动(默认)调用,但是不能被继承。
7.super怎么用?
- super有两个用处:
- 1.调用父类构造方法
- 2.调用父类的一般方法和属性
- super:代表父类,指明调用父类有参数构造方法。
- super是java关键字
- super调用构造方法的时必须在第一行
- 创建子类的时候,父类的无参构造方法会被自动调用
8.额外的题:
(1)父类没有无参构造方法,还能创建子类对象吗?
- 可以,用super明确调用即可。
(2)子类方法中如何调用父类的一般方法?
- 答:直接使用即可。
(3)面试题:父类的构造方法能否被子类继承?
- 答:不能,能继承属性和一般方法。
(4)子类方法中如何使用父类的同名属性?
- 直接用打印的子类本身属性,super.打印的父类的同名属性
9.方法重写Override的规则是什么?
- 方法的重写(Override)又叫覆盖;
- 方法的重写规则:
- 1.方法名相同
- 2.参数列表相同(类型)
- 3.返回类型相同
- 4.访问控制符和原来一样或更为宽松
- 构造方法不能被重写,因为能重写的一定是能被继承过来的,构造方法不能被继承,所以不能被重写。
10.方法重载Overload的规则是什么?
- 方法的重载Overload:在一个类里有同名的方法,这就是重载。
- 重载的规则:
- 1.方法名字相同
- 2.参数列表必须不同
- 3.返回类型和修饰符不限
11.构造方法能不能重载?
- 答:可以。
12.this怎么用?
- this代表当前类对象,this放在哪个类里,this就代表那个类的对象;它是Java的关键字
- this有两方面用处:
- 1.调用方法或使用属性
- 2.this调用构造方法
- this调用构造方法必须在第一行:因此super和this不能同时出现
- this和super不能在static方法中使用
13.对象构造次序解析?
- 创建子类对象,父类构造方法先执行,有游离块的话,游离块先执行
- 父类的先办完,在办子类的
14.Object类有什么特性?
- Object是顶级父类,位于继承关系的最顶端
15.如何重写toString等方法?
//重写Object类的toString方法
public String toString() {
return "大家好!";
}
16.重点总结
1.为什么使用继承?
- 答:类的重用。
2.Java中是否支持多重继承
- 答:不支持。
3.面试题:Override和Overload的区别?
- (1)重写是发生在有继承关系的类之间
- (2)重载是在一个类内部
- (3)规则不同
4.子类对象实例化(构造次序)过程
- (1)父类游离块
- (2)父类构造方法
- (3)子类游离块
- (4)子类构造方法
5.this和super的区别和作用?
- super代表父类对象;this代表当前对象
- super有两个用处:1.调用父类构造方法2.调用父类的一般方法和属性;this有两方面用处:1.调用方法或使用属性2.this调用构造方法
- super()调父类构造方法,super. 调父类的一般方法或属性;this() 调本类构造方法,this. 调本类的一般方法或属性
6.访问控制符的作用范围?
- private不可以被继承,也不能修饰外部类和局部变量,可以修饰属性、构造方法和一般方法。
- protected不可以修饰外部类和局部变量,可以修饰属性、构造方法和一般方法。
- public不能修饰局部变量
- 构造方法能否被private和protected修饰? 答:能