文章目录
1. 类的继承
继承基本思想:基于某个父类进行扩展,得到一个新的子类。子类可以继承父类原有的属性和方法,也可以增加父类所不具备的属性和方法,或者直接重写父类中的某些方法。
使用extends
关键字来标识两个类的继承关系。
使用super
关键字调用父类的构造方法和成员方法等。
子类没有权限调用父类中被修饰为private的方法,只能调用父类中被修饰为public和protected的成员方法。
当重写父类方法时,修改方法的修饰权限只能从小的范围到大的范围改变。
重写不能降低方法的修饰权限范围。
子类重写父类方法的还可以修改方法的返回值。
当实例化子类对象时,父类对象也相应被实例化。
package Extends;
//继承机制
class Parent { // 父类
Parent() {
System.out.println("调用父类的parent()构造方法");
}
}
class SubParent extends Parent { // 继承Parent类
SubParent() {
System.out.println("调用子类的SubParent()构造方法");
}
}
public class Subroutine extends SubParent { // 继承SubParent类
Subroutine() {
System.out.println("调用子类的Subroutine()构造方法");
}
public static void main(String[] args) {
Subroutine s = new Subroutine(); // 实例化子类对象
}
}
实例化子类对象时首先要实例化父类对象,然后再实例化子类对象,所以在子类构造方法访问父类的构造方法之前,父类已经完成实例化操作。
在实例化子类对象时,父类无参构造方法将被自动调用,
有参构造方法不能被自动调用,用户只能使用super
关键字调用父类的构造方法。