1.继承:1>概念:共性抽取,是多态的前提,分为父子类,子类可拥有父类的内容,并拥有自己的内容;
//public class 子类名extends 父类名{ };
2>父类对象只能使用父类的东西,子类可以使用父类和子类的东西;
3>父子类若有重名:<1>直接通过子类对象访问成员变量:谁调用优先用谁,没有就向上找;
<2>间接通过成员方法访问成员变量:方法属于谁优先用谁,没有就向上找;
4>子类方法中重名的三种变量:<1>局部变量:直接写成员变量名;
<2>本类的成员变量:this.成员变量名;
<3>父类的成员变量:super.成员变量名;
5>访问成员方法的规则:创建的对象是谁,优先用谁的方法,没有就向上找;成员方法和成员变量都是向上
找,不能向下找。
2.重写/覆盖/覆写(Override):1>概念:继承关系中,方法名称一样,参数列表也一样;
2>特点:创建了子类对象,就优先用子类方法;
3>注意事项:<1>@Override: //写在方法前面,检测是否是正确的覆盖重写;
<2>子类方法返回值必须<=父类方法返回值的范围 //Object是所有类的父类
Object>String;
<3>public > protected > (default) > private 子类方法的权限>=父类方法的权限;
4>构造方法的访问特点:<1>子类必须调用父类构造方法,没写的时候默认方法前有super,先调
用父类,后执行子类;
<2>super的父类构造调用,必须是子类构造方法的第一个语句,不能一
个子类构造方法调用多super构造;
<3>子类构造可以通过super关键字来调用父类重载构造;
<4>总结:子类必须调用父类构造方法,不写就默认super(),写了就用
写的super调用,super有且只有一个,
3.super的三种用法:1>子类成员方法中,访问父类的成员变量;
2>子类成员方法中,访问父类的成员方法;
3>子类构造方法中,访问父类的构造方法;
4.this的三种用法:1>在本类成员方法中,访问本类的成员变量;
2>在本类成员方法中,访问本类的另一个成员方法;
3>在本类构造方法中,访问本类的另一个构造方法,this(...)必须是构造方法的第一个语句;
super和this的构造调用,只能使用一个;
5.this和super的地址图解:
6.继承的特点:1>单继承,只有一个直接父类;
2>可以多级继承,java.lang.Object是所有类的父类
3>一个父类可以拥有很多子类。