java基础笔记007 – 面向对象
今日内容
1. 【理解】什么是继承
2. 【掌握】继承的使用
3. 【理解】继承中的成员的特点
4. 【理解】super和this的作用
5. 【理解】什么是抽象
6. 【掌握】抽象的使用
一、继承
-
概念
继承就是子类继承父类的非私有属性和行为,子类对象可直接使用
-
格式 extends关键字
class 父类名{ ... } class 子类名 extends 父类名{ …… }
-
好处
提高代码复用性,用来表示类与类之间的关系,多态的前提之一。
-
继承中成员的特点
-
子类可以拥有自己的属性和方法,同名属性在调用时,采用就近原则
-
父类的私有属性,子类不能操作
-
当继承中有重名方法时,表示重写,相当于子类重写了父类的方法体,再调用时执行的是重写后的方法。
重写注意事项: 1.重写方法的访问权限修饰符权限范围必须大于等于父类中别重写的方法; 2.除访问权限修饰符和方法体外,其他方法组成部分必须一致。
-
当子类中有成员变量或子类方法中有参数命名与父类属性相同,使用super.属性名代表父类的属性加以区分
-
当子类要调用父类方法是,也可以用super.方法();
-
方法重写(Override)方法重载(Overload)的区别
-
书写位置不同
方法重写发生在子类与父类继承过程中,方法重载发生在同一个类书写相同方法名
-
方法执行不同
方法重写调用时默认调用子类重写方法,方法重载jvm会自动根据参数列表进行匹配执行
-
书写不同
方法重写修饰符必须大于等于父类(一般就是public),可以修改方法体,但返回值、方法名、参数列表必须相同方法重载只要求方法名相同,参数列表不同即可
-
二、继承的特点
- 继承之构造函数
//1.由于构造函数不能被继承,所以子类构造方法中默认调用父类无参构造
super();
//2.当父类自定义构造函数时,子类必须自定义相同参数列表的构造函数并在函数内第一行调用父类对应的构造函数。
public 子类名(参数){
super(参数);
}
//3.当子类创建对象时,首先创建了父类对象
- super和this关键字
super: 代表父类对象的引用(父类对象的存储地址)
this: 当前对象的引用
- 继承特点
// 1. java只支持单继承
// 2. java支持多层继承,A->B B->C C->D
- 继承关系创建后的存储结构
底层逻辑帮助理解博客:
Java继承–子类的实例化过程 - Kkky - 博客园 (cnblogs.com)
JAVA 继承 父类子类 内存分配_smithdoudou88的专栏-CSDN博客
三、抽象类
- 概念
被abstract关键字修饰的类,public abstract class 类名
- 抽象方法
abstract修饰的只有方法声明,没有方法体的方法,public abstract int add();
- 注意
- 抽象方法一定在抽象类中,抽象类中不一定有抽象方法
- 继承抽象类的话,必须实现所有抽象方法,否则该子类也应是抽象类
- 抽象类不能new对象,但可以通过子类创建对象(向上转型)