继承

一个子类只能有一个父类,一个父类可以有多个子类
子类继承了父类所有的成员(成员变量和方法)。子类也继承了父类的私有成员,但不可以直接访问这些继承过来的私有成员。如果一个父类的构造方法都是private的,那么就不能再创建它的子类了。

子类的构造过程必须调用父类的构造方法,且必须写在第一行。
调用父类的构造方法使用super()。调用自身的构造方法使用this()。
如果子类的构造方法没有显式调用父类的构造方法,那么默认调用父类无参的构造方法。

方法重写的两同两小一大原则:
方法名相同,参数类型相同
子类返回类型小于等于父类方法返回类型,
子类抛出异常小于等于父类方法抛出异常,
子类访问权限大于等于父类方法访问权限。

一个基类的引用不可以访问其子类中新添加的成员(属性和方法)。

代码及内存图

class Father {
    int value = 100;
    void method() {
        System.out.println("父类方法执行");
    }
}
class Son extends Father {
    int value = 50;
    void method() {
        super.method();
        System.out.println(super.value);
        System.out.println(value);
    }
}
public class Demo {
    public static void main(String[] args) {
        Father f = new Son();
        System.out.println("属性重写访问的还是父类的属性"+f.value);
        f.method();
    }
}
代 码

内存图

原文地址:https://www.cnblogs.com/Mike_Chang/p/9817949.html