Java 继承

关于子类Sub继承父类Base:

子类可以定义同父类的静态方法同名的静态方法,以便在子类中隐藏父类的静态方法。编译时,子类定义的静态方法也必须满足和方法覆盖类似的约束。

方法的参数签名一致

返回类型一致

不能缩小父类方法的访问权限

不能抛出更多的异常

子类隐藏父类的静态方法,子类覆盖父类的实例方法 ----运行时,Java虚拟机把静态方法和所属的类绑定,把实例方法和所属的实例绑定

例子:

package com.snape.java.extendsDemo;

public class Test {
    public static void main(String[] args) {
        Sub sub1 = new Sub();   //引用子类Sub实例
        sub1.method();  //打开子类实例方法
        sub1.staticMethod();    //打开子类静态方法

        Base base1 = new Sub(); //声明为Base类型,引用Sub实例
        base1.method(); 
        base1.staticMethod();
    }
}

结果:

父类的非静态方法不能被子类覆盖为静态方法.

父类的private方法不能被子类覆盖 ------- 子类方法覆盖父类方法的前提是:子类必须能继承父类的特定方法,否则之间没有覆盖关系.

原文地址:https://www.cnblogs.com/CPU-Easy/p/12196961.html