继承:
作用:共性抽取,来提高代码的复用性(把一些事物都有的共性,提取出来放在公共类中,每个事物可以通过自己的类来操作公共类的属性)
以上图为例,不用继承关系下来写:定义一个Cat类,定义一个Dog类,在里面定义各自的方法
以继承的方式来写:狗和猫都有两个共性的属性,颜色、吃;
而后把两个共性的事物抽取出来放到父类中去,然后子类来调用父类的方法
下图所示,先创建两个子类Cat,Dog,父类Animal
下图所示:
继承语法:public class 子类 extends 父类{
// 子类可以使用父类中非Private修饰的成员变量
}
Cat子类
Dog子类:
继承关系下构造方法的特点:
a. 一个类的构造方法中,如果什么都不写,则默认有一个super();
super(); 表示要调用父类的无参数的构造方法。
b. 一个类的构造方法中, 如果显示的写了super();则不再赠送了
如果要显示的写super(); 必须是第一个语句
接下来是this和super用法的概念:
super关键字的三种用法:
1.在子类的"构造方法"中写super();
也可以写super(参数)显示的调用父类有参数的构造方法
2. super.父类成员变量
3. super.父类成员方法
this关键字的三种用法:
1. this.本类成员变量 //调用本类的成员变量
2. this.本类成员方法 //调用本类的成员方法
3. this(参数);//写在子类的构造方法中,表示调用本类的其他构造方法
必须是第一个语句。this()和super()这两种写法不能同时存在。
4. 构造方法不能递归调用
注意事项:
1.Java中只能单继承,一个子类只能有一个直接父类
2. Java是可以多级继承。
3. 一个父类可以有多个子类
4.一个类如果没有显示的继承一个父类,则默认继承自Object顶级父类