继承:子类拥有父类全部内容且可以拥有自己的专有内容。
“子类就是一个父类”“狗就是一个动物”
格式:
public class 子类 extends 父类(){
//方法体
}
(一)继承关系中成员变量及成员方法的访问特点
①如成员变量和成员方法不重名,则父类只能访问父类的,子类可以访问父类和子类的;
②如果重名,则一是直接由子类对象访问成员变量(等号左边是谁就优先用谁,没有往上找);二是间接通过成员方法访问成员变量(方法属于谁,就优先用谁,没有往上找)
(二)三种子类方法中变量重名的区分
①局部变量 `num`
②子类成员变量 `this.num`
③父类成员变量 `super.num`
(三)继承中方法的覆盖重写
重写(`@Override`):方法名称一样,参数列表也一样(覆盖、覆写);
重载(`Overload`):方法名称一样,参数列表不一样。
注:子类成员方法的返回值必须小于等于父类方法的返回值;成员方法的权限修饰符应该大于等于父类权限修饰符。
权限修饰符:public>protected>(default)>private
public: 本类、同包、子类、其他
protected:本类、同包、子类
default: 本类、同包
private: 本类
(四)继承关系中构造方法访问特点
①子类构造方法中默认隐含的super()调用。
②可以用super(参数)调用父类的构造函数。
③这个调用必须放在子类构造方法的第一行(先有父后有子)。
(五)super和this关键字的用法
super.name; super.print(); super();
this.name; this.print(); this();