01、继承的概述
一、引言
假如我们能够把这些类中的相同的内容给提取出来定义在某一个类中然后,让其他的类和这个定义的类产生一个关系,有了这个关系他们就具备了这个定义类中的功能。该有多好呢?针对这种情况,java就提供了一种技术:继承。
二、继承的格式和叫法
格式
class 类A extends 类B{
//表示类A继承了类B
}
注意:
子类可以直接访问父类中的非私有的属性和行为。
02、继承的好处及特点
一、好处
A:提高了代码的复用性
B:让类与类之间产生了一个关系,是多态的前提
二、特点
A:Java只支持单继承,不支持多继承,因为如果可以多继承,就会出现调用不明确的问题
B:Java支持多重继承
03、什么时候定义继承关系
由于继承体现了一种关系:is a的关系。XXX is YYY的一种
以后,我们在定义类(A,B)的时候
如果他们之间有:A is a B的一种,或者B is a A那么,他们之间就存在继承关系,前者A是子类,后者B是子类。
注意:不要为了获取部分功能,而去使用继承。
04、子父类间成员变量的使用
一、类的组成
成员变量
构造方法
成员方法
二、研究子父类的成员变量的关系?通过子类访问一个成员变量的时候:
A:首先在局部范围找,如果有就使用
B:继续在成员位置找,如果有就使用。
C:最后在父类中找,如果有就使用。
D:如果没有就报错。
三、我现在要在子类中,输出局部范围的值,输出成员范围的值,输出父类成员变量的值,怎么办?
A:局部范围的值-------直接输出变量名即可
B:成员范围-------输出this.变量名即可
C:父类的成员变量-------输出super.变量名即可
05、this和super的区别和应用
一、概述
this:代表本类对象的引用
super:和this的用法很相似,代表父类的内存空间的表示(可以理解为父类对象的引用)。
二、this和super的使用
1.成员变量
this.变量--当前类的变量
super.变量--父类的变量
2.构造方法
this(参数)--本类的其他构造方法
super(参数)--父类的构造方法
3.成员变量
this.方法名()--本类的方法
super.方法名()--父类的方法
06、方法的重写
一、概念
子类中出现与父类一模一样的方法时,会出现覆盖操作,也称为重写或者复写
二、区别(背)
方法重写:在父子类中,出现方法相同的情况,返回值,方法名,参数都要求一模一样
方法重载:同一个类中,方法名相同,跟返回值无关
07、子父类间成员方法的注意事项
A:父类中的私有方法不能被覆盖
B:子类的访问权限一定要大于父类的访问权限
C:静态方法只能被静态方法重写,这个其实不能算对象的关系
D:覆盖的应用
当子类需要父类的功能,而主体子类有自己特有的内容时,可以复写父类的方法,这样,即沿袭了父类的功能,又定义了子类特有的内容。
08、子父类间构造方法的执行顺序
一、继承中的构造关系
子类中构造方法默认都去访问了父类的无参构造方法,在子类中的构造方法都有一行默认语句:super();
二、为什么要这样做?
子类会自动具备父类中非私有的数据,那么,这个数据的初始化由父类完成,所以会先去调用父类的构造方法对数据进行初始化。
注意,如果父类中没有无参构造方法,那么怎么办?
A:可以使用super(参数)去访问父类的有参构造方法
B:可以使用this(参数)去访问本类中的其他构造方法,不推荐使用
09、代码块的执行顺序
静态代码块-->构造代码块-->构造方法
注意
静态代码块只执行一次。(class字节码文件只加载一次的情况下)
10、子类如何使用父类的私有成员变量
如果成员变量被私有了,那么,在子类中怎么使用呢 ?
A:子类通过父类的set方法可以给父类的成员变量赋值
B:通过子类调用父类的带参构造方法
11、final关键字的概述和使用
一、引言
很多时候,有些内容是不能被子类重写的。而我们又知道,只要方法声明(public void show())相同子类就可以重写父类方法。这样就让父类的方法不安全了针对这种情况,我们如果能够做一个标记,告诉别人,注意了,这个方法是不可以被重写了。那么,这个标记是什么恩?final
二、final关键字
1.概念:最终的意思,可以修饰类,成员方法,成员变量
2.他修饰的成员方法是不可以被子类重写的
3.常量:他修饰成员变量时,其实是一个常量
4.他修饰的类不能被继承
标签:变量,构造方法,继承,子类,08,父类,方法,成员 From: https://blog.csdn.net/weixin_55345689/article/details/141172894