一、继承性
1、定义:子类继承父类的属性和行为,使得子类对象具有与父类相同的属性、相同的行为。
子类可以直接访问父类中的非私有的属性和行为。
2、格式

3.成员变量的继承
- 如果子类父类中出现不重名的成员变量,这时的访问是没有影响的。
- 如果子类父类中出现重名的成员变量,这时的访问是有影响的。
访问规则: 直接通过子类对象访问成员变量。等号左边是谁,就优先用谁。没有就向上找
间接通过成员方法访问成员变量。看该方法属于谁,就优先用谁。没有就向上找
局部变量:直接写
本类成员变量:this.成员变量名
父类变量名:super.父类成员变量名
4.成员方法的继承
- 如果子类父类中出现不重名的成员方法,这时的调用是没有影响的
- 如果子类父类中出现重名的成员方法,这时的访问是一种特殊情况,叫做方法重写 (Override)。
访问规则:创建的对象是谁,就优先用谁,如果没有就向上找
- 方法重写 :子类中出现与父类一模一样的方法时(返回值类型,方法名和参数列表都相同),会出现覆盖效果。声明不变,重新实现。
注意事项:1. 子类方法覆盖父类方法,必须要保证权限大于等于父类权限。(public > protected > default(表示什么都不写,留空)> private)
2. 子类方法覆盖父类方法,函数名和参数列表都要一模一样
3 . 子类方法的返回值必须小于等于父类方法的返回值类型(前提:java.lang.Object类是所有类的公共最高类)
4.可在前面加上一个 @Override 表示检测方法重写是否写错
5.构造方法的继承
- 子类构造方法中有一个默认隐含的“ super() ” 调用,调用无参父类方法。先调用父类,后执行子类构造。
- 子类构造可以用 super 关键字调用 父类重载有参构造方法。
- super 父类构造调用, 必须是子类构造方法的第一个语句。
二、 super关键字用法——用来访问父类内容
- 在子类成员方法中,访问父类的成员变量
- 在子类成员方法中,访问父类的成员方法
- 在子类构造方法中,访问父类的构造方法
三、 this 关键字用法——用来访问本类内容
- 在本类的成员方法中,访问本类的成员变量
- 在本类的成员方法中,访问本类的另一个成员方法
- 在本类的构造方法中,访问本类的另一个构造方法,也必须是第一个语句

注意: super 和 this 不能同时出现,因为都得是第一个。
继承的特点
1. Java只支持单继承,不支持多继承。

2. Java支持多层继承(继承体系)。
顶层父类是Object类。所有的类默认继承Object,作为父类。

3. 子类和父类是一种相对的概念。
四、抽象类
1.定义 抽象方法 : 没有方法体的方法。
抽象类:包含抽象方法的类。
2.格式
如果一个类包含抽象方法,那么该类必须是抽象类。

3.使用方法
- 抽象类不能创建对象
- 必须用一个子类来继承抽象父类
- 抽象类的子类,必须重写抽象父类中所有的抽象方法,即 子类去掉抽象方法的abstract 关键字,然后补上方法体大括号
- 创建子类对象进行使用
4.注意对象
- 抽象类不能创建对象,如果创建,编译无法通过而报错。只能创建其非抽象子类的对象。
- 抽象类中,可以有构造方法,是供子类创建对象时,初始化父类成员使用的。
- 抽象类中,不一定包含抽象方法,但是有抽象方法的类必定是抽象类。
- 抽象类的子类,必须重写抽象父类中所有的抽象方法,否则,编译无法通过而报错。除非该子类也是抽象类
13 继承、super、this、抽象类
原文:https://www.cnblogs.com/deepsealin/p/13137677.html