-
A:Java中类的继承特点
-
a:Java只支持单继承,不支持多继承。(一个儿子只能有一个爹)
- 有些语言是支持多继承,格式:extends 类1,类2,…
-
b:Java支持多层继承(继承体系)
-
B:案例演示
-
Java中类的继承特点
-
如果想用这个体系的所有功能用最底层的类创建对象
-
如果想看这个体系的共性功能,看最顶层的类
-
-
4.继承的注意事项以及继承的应用场景
(1)继承的注意事项
* a:子类只能继承父类所有非私有的成员(成员方法和成员变量)
* b:子类不能继承父类的构造方法,但是可以通过super(马上讲)关键字去访问父类构造方法。
* c:不要为了部分功能而去继承
继承体现的是一种 "is a" 的关系。
子父类出现同名的变量时采用就近原则。开发中不会出现这种情况。
(2)什么时候用继承?
采用假设法。
如果有两个类A,B。只有他们符合A是B的一种,或者B是A的一种,就可以考虑使用继承。
5.this和super的区别和应用
-
A:this和super都代表什么
-
this:代表当前对象的引用,谁来调用我,我就代表谁
-
super:代表当前对象父类的引用
-
-
B:this和super的使用区别
-
a:调用成员变量
-
this.成员变量 调用本类的成员变量,也可以调用父类的成员变量
-
super.成员变量 调用父类的成员变量
-
-
b:调用构造方法
-
this(…) 调用本类的构造方法
-
super(…) 调用父类的构造方法
-
-
c:调用成员方法
-
this.成员方法 调用本类的成员方法,也可以调用父类的方法
-
super.成员方法 调用父类的成员方法
-
-
6.继承中构造方法的关系
-
A:案例演示
- 子类中所有的构造方法默认都会访问父类中空参数的构造方法
-
B:为什么呢?
-
因为子类会继承父类中的数据,可能还会使用父类的数据。
-
所以,子类初始化之前,一定要先完成父类数据的初始化。
-
其实:
- 每一个构造方法的第一条语句默认都是:super(); Object类最顶层的父类。
-
7.继承中构造方法的注意事项
-
A:案例演示
-
父类没有无参构造方法,子类怎么办?
-
super解决
-
this解决
-
-
B:注意事项
- super(…)或者this(….)必须出现在构造方法的第一条语句上
8.方法重写概述及其应用
-
A:什么是方法重写
- 重写:子父类出现了一模一样的方法(注意:返回值类型可以是子父类,这个我们学完面向对象讲)
-
B:方法重写的应用:
- 当子类需要父类的功能,而功能主体子类有自己特有内容时,可以重写父类中的方法。这样,即沿袭了父类的功能,又定义了子类特有的内容。
9.方法重写的注意事项
-
A:方法重写注意事项
-
a:父类中私有方法不能被重写
- 因为父类私有方法子类根本就无法继承
-
b:子类重写父类方法时,访问权限不能更低
- 最好就一致
-
c:父类静态方法,子类也必须通过静态方法进行重写
- 其实这个算不上方法重写,但是现象确实如此,至于为什么算不上方法重写,多态中我会讲解(静态只能覆盖静态)
-
子类重写父类方法的时候,最好声明一模一样。
-
10.方法重写的面试题
* Override和Overload的区别?Overload能改变返回值类型吗?
* overload可以改变返回值类型,只看参数列表
* 方法重写:子类中出现了和父类中方法声明一模一样的方法。与返回值类型有关,返回值是一致(或者是子父类)的
* 方法重载:本类中出现的方法名一样,参数列表不同的方法。与返回值类型无关。
* 子类对象调用方法的时候:
* 先找子类本身,再找父类。
1.前提条件