继承:
定义:指一个类的定义可以基于另外一个已经存在的类,即子类基于父类,从而实现父类代码的重用,子类能吸收已有类的数据属性和行为,并能扩展新的能力。(可以理解为对一个类的扩充)
形式:
[访问权限修饰符][修饰符] 子类名 extends 父类名{
子类体
}
作用:
子类对象可以直接调用父类的属性和方法。
方法的覆盖:
子类可以重写父类中某一个方法,称为方法覆盖,也称方法重写,是继承中非常重要的知识点。如果子类需要修改从父类继承到的方法的方法体,就可以使用方法覆盖。
方法覆盖的原则
1)同名
2)同参
3)同返回值
4)访问权限不能缩小
super关键字代表父类的引用,在程序中主要的用途:
1)在子类构造方法中要调用父类的构造方法,需要注意:super语句只能出现在子类构造方法体的第一行。
2)当子类方法体中的局部变量或者子类的成员变量与父类成员变量同名时,即子类局部变量覆盖父类成员变量时,用“super.成员变量名”来引用父类成员变量
3)当子类的成员方法覆盖了父类的成员方法时,也就是子类和父类有完全相同的方法定义(方法体可以不同),此时,用“super.方法名(参数列表)”的方式访问父类的方法。
与this的区别,this通常指代当前对象,super通常指代父类。 this 关键字代表自身,在程序中主要的用途。(this关键字必须放在非静态方法里面)
使用this关键字在自身构造方法内部引用其它构造方法
使用this关键字代表自身类的对象
直接使用this
使用this关键字引用成员变量
使用this关键字引用成员方法
1)在一个类的方法或构造方法内部,可以使用“this.成员变量名”这样的格式来引用成员变量名,常常用来区分同名的成员变量和局部变量。
2)在一个类的构造方法内部,也可以使用this关键字引用其它的构造方法,这样可以降低代码的重复,也可以使所有的构造方法保持统一,这样方便以后的代码修改和维护,也方便代码的阅读。
3)在一个类的内部,成员方法之间的互相调用时也可以使用“this.方法名(参数)”来进行引用。
4)在一个类的内部,也可以使用this代表自身类的对象,或者换句话说,每个类内部都有一个隐含的成员变量,该成员变量的类型是该类的类型,该成员变量的名称是this