Java的继承与重写

开发工具与关键技术:MyEclipse 10、Java语法
作者:邓婵
撰写时间:2019年 5月 12日

继承(extends)的定义:继承就是子类继承父类的特征和行为,使得子类对象具有父类的实现域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。
注意:Java不支持多继承,但支持多重继承。
例子:
Java的继承与重写_第1张图片
这个例子说明子类1继承了父类,子类2继承了子类1,由于子类1继承了父类,而子类2又继承了子类1,就相当于间接继承了父类,这体现了继承中的多重继承。

不正确的写法:

class ChildClass3 extends ChildClass,ChildClass2{
}

这种写法是错误的,因为Java中不支持多继承,但支持多重继承。当你用这种写法你在编写代码时就会报错,是无法使用多继承的。

注意:final修饰的类是不可以被继承,它在编辑代码的时候也同样会报错。相关代码可参考图下:
Java的继承与重写_第2张图片

重写(Override)的定义:重写是子类对父类的允许访问的方法的实现过程进行重新编写,返回值和形参都不能改变。
重写的好处:子类可以根据需要定义特定于自已的行为。也就是子类能够根据需要实现父类的方法。
例子:
Java的继承与重写_第3张图片
Java的继承与重写_第4张图片
Java的继承与重写_第5张图片
说明:例子1中构造器是不能重写的,因为构造器名称要与类名称相同,然后在这里又重写这个构造器是不行的。例子2是正确的重写了方法。例子3不是重写,因为声明为static的方法不能被重写,但能够被调用,所以这里只是重新声明了一下,而不是重写的。例子4是private修饰的方法无法被子类继承,一个方法要重写首先能被继承,如果不能继承一个方法,则不能重写这个方法,所以私有的方法外部不能直接被调用的。结果如图下所示:

Java的继承与重写_第6张图片
注意:final修饰的类是不能被重写的,它在编辑代码的时候也同样会报错。相关代码可参考图下:

Java的继承与重写_第7张图片
super 与 this 关键字
1)this关键字指向当前对象自身,super关键字指向当前对象的直接父类。
2)在main方法中不可以存在this或super关键字
3)this和super关键字都可以访问成员属性,成员方法和构造方法
4)在一个类的构造方法中不可以同时使用this和super来调用其他构造方法

你可能感兴趣的:(Java的继承与重写)