开发工具与关键技术:MyEclipse 10、Java语法
作者:邓婵
撰写时间:2019年 5月 12日
继承(extends)的定义:继承就是子类继承父类的特征和行为,使得子类对象具有父类的实现域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。
注意:Java不支持多继承,但支持多重继承。
例子:
这个例子说明子类1继承了父类,子类2继承了子类1,由于子类1继承了父类,而子类2又继承了子类1,就相当于间接继承了父类,这体现了继承中的多重继承。
不正确的写法:
class ChildClass3 extends ChildClass,ChildClass2{
}
这种写法是错误的,因为Java中不支持多继承,但支持多重继承。当你用这种写法你在编写代码时就会报错,是无法使用多继承的。
注意:final修饰的类是不可以被继承,它在编辑代码的时候也同样会报错。相关代码可参考图下:
重写(Override)的定义:重写是子类对父类的允许访问的方法的实现过程进行重新编写,返回值和形参都不能改变。
重写的好处:子类可以根据需要定义特定于自已的行为。也就是子类能够根据需要实现父类的方法。
例子:
说明:例子1中构造器是不能重写的,因为构造器名称要与类名称相同,然后在这里又重写这个构造器是不行的。例子2是正确的重写了方法。例子3不是重写,因为声明为static的方法不能被重写,但能够被调用,所以这里只是重新声明了一下,而不是重写的。例子4是private修饰的方法无法被子类继承,一个方法要重写首先能被继承,如果不能继承一个方法,则不能重写这个方法,所以私有的方法外部不能直接被调用的。结果如图下所示:
注意:final修饰的类是不能被重写的,它在编辑代码的时候也同样会报错。相关代码可参考图下:
super 与 this 关键字
1)this关键字指向当前对象自身,super关键字指向当前对象的直接父类。
2)在main方法中不可以存在this或super关键字
3)this和super关键字都可以访问成员属性,成员方法和构造方法
4)在一个类的构造方法中不可以同时使用this和super来调用其他构造方法