private/final/static 则子类就不能重写该方法

2022-03-05  本文已影响0人  xiaohei_e853

如果父类方法访问修饰符为 private/final/static 则子类就不能重写该方法,但是被 static 修饰的方法能够被再次声明。

我寻思着static方法不是不能重写吗?于是做了如下实验:

class Base {
    public static String staticBase() {
        return "Base-staticBase()";
    }

    public String normal() {
        return "Base-normal()";
    }
}

class Son extends  Base{
    public static String staticBase() {
        return "Son-staticBase()";
    }

    public String normal() {
        return "son-normal()";
    }
}

public class StaticTest {
    public static void main(String[] args) {
        Base son = new Son();
        System.out.println(son.staticBase());
        System.out.println(son.normal());
    }
}

结果如下:


image.png

cglib动态代理不能代理被final,static修饰的方法,因为它的原理是通过继承该类来实现的

上一篇 下一篇

猜你喜欢

热点阅读