继承
继承:向上抽取共性
格式:
父类:
public class A{
//...
}
子类:
public class B extends A {
//......
}
说明:
A是B的父类,B是A的子类
子类拥有父类的所有内容,除了private和构造方法以外
继承的好处:完成代码的服用
继承成员变量的访问特点:
直接通过子类对象访问成员变量:
等号左边是谁,优先使用谁,没有向上找
间接通过成员方法访问成员变量:
方法属于谁,就优先使用谁,没有向上找
注意子类可以向上找(父类),父类不能向下找(子类)
继承中子类三个同名的变量的访问
方法内部直接访问变量,采用就近原则,没有向上找
this.变量名:本类的成员变量
super.变量名:父类的成员变量
继承中成员方法的访问特点:
new的是谁,优先使用谁,没有向上找
子类可以向上找,但是父类不能向下找
方法重写(Override)概念:父子类中出现了,名称相同,参数列表相同的方法的现象,叫做方法重写
方法重载【Overload】:名称相同,参事列表[不相同],与方法体无关
方法重写【Overload】:名称相同,参数列表[也相同],与方法体无关
重写又叫做:覆盖,重写
new的是谁,优先使用谁
权限:public>protected>什么都不写(default)>private
方法重写的注意事项:
子类方法覆盖父类方法,必须要保证权限大于等于父类权限
父类prinvate的方法,子类无法继承,不存在重写
子类方法的名称和参数列表必须和父类方法完全一致
子类方法覆盖父类方法,返回值类型(子类方法的返回值类型<=父类)
继承中构造方法的方法的访问特点:
创建子类对象,必须调用父类的构造方法
子类所有的构造方法中如果没有手动super调用父类构造方法,编译器默认隐藏一个super()调用父类空参构造
构造方法可以重载,所有可以使用suprt(参数),调用父类的重载的构造方法
成员方法中,不能使用super()调用构造方法
this关键字的总结
调用成员变量:
this.变量名称
调用成员方法:
this.成员方法名称(参数)
调用本类重载的构造方法
this(参数...)
this和super调用构造方法,只能写一个,而且是第一行
构造方法不能自己调用自己,也不能出现僵持调用,A掉B,B在调用A
super关键字的总结:
调用成员变量
super.变量名称
调用成员方法
super.成员方法名称(参数)
调用本类重载的构造方法
super(参数...)
Java只支持单继承,不支持多继承
Java支持多层继承(继承体系)