1、什么是继承:
当多个类中,有相同的成员的时候,我们把这个相同的成员抽取到一个类里边,我们称它为父类(官方说法:基类或超类),由父类生成的类,称之为该类的子类(官方说法:派生类)
就是多对一的关系;一个父类可以有多个子类
例如:动物(父类):猫(子类),狗(子类),人(子类)
2、建立继承关系的特点:
3、建立继承关系的好处:
提高代码的复用性
让类与类产生了关系——》继承关系 多态的前提
4、建立继承关系的格式:extends 关键字
class 父类 { ... }
class 子类 extends 父类 { ... }
5、子父类的联系:
子父类 的 成员变量:
如果子父类的公有成员不重名,不影响调用
如果重名,需要用super关键字调用
如果是父类的私有成员,需要用父类共有的get 或set方法调用
子父类 的 成员方法:
如果成员方法不重名,不影响调用
如果重名,那就叫做方法重写(Overmide)方法名&返回值类型&参数列表都相同
方法重写只存在与继承关系的子类中
方法重写:
子类增加一些父类没有的新的功能
子类方法覆盖父类方法,必须要保证权限大于等于父类权限。
6、构造方法的执行特点:
构造方法的名字与类名一致,所以子类无法继承父类的构造方法
构造方法中的作用是用来初始化成员变量的(先父后子,默认有一个super()且在第一行)
7、super和this:
super:代表父类的存储空间标识
this:代表当前对象的引用(谁调用就代表谁)
super:
super.成员变量 ‐‐ 父类的
super.成员方法名() ‐‐ 父类的
this:
this.成员变量 ‐‐ 本类的
this.成员方法名() ‐‐ 本类的
访问构造:
this(…) ‐‐ 本类的构造方法
super(…) ‐‐ 父类的构造方法
8、继承:
1、Java只支持单继承
2、Java支持多层继承
3、子类和父类是一种相对的概念
4、一个父类可以有很多个子类
9、抽象类:
我们把只有方法名没有方法体的类称之为抽象类
包含抽象方法的类就是抽象类
但抽象类中不一定就用抽象方法,(关键字:abstract)
继承抽象类的子类必须重写父类所有的抽象方法
public abstract class 类名字 { }
抽象方法:
只有方法的声明,没有方法体的方法,就是抽象方法
且抽象方法所在的类必定是个抽象类
修饰符 abstract 返回值类型 方法名 (参数列表);