美文网首页
private/final/static 则子类就不能重写该方法

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

作者: xiaohei_e853 | 来源:发表于2022-03-05 11:01 被阅读0次

如果父类方法访问修饰符为 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修饰的方法,因为它的原理是通过继承该类来实现的

相关文章

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

    如果父类方法访问修饰符为 private/final/static 则子类就不能重写该方法,但是被 static ...

  • Android面试复习-Java基础

    关键字final和static final final变量即为常量,只能赋值一次 final方法不能被子类重写 f...

  • Java 继承

    Java中继承,就是子类拥有父类的,非private的变量和方法。 注意点 不能重写final 方法 单继承,但可...

  • 多态适用性

    多态只适用于普通方法,不适用于 private / final 修饰的方法(因为这类方法不能被子类重写),也不适用...

  • 第8章 多态

    8.2 **总结 private的方法可以看作是final类型的,这样在子类中是无法被重写的,子类中实际上是可以看...

  • org.testng.log4testng.Logger

    使用方法:private static final Logger LOGGER = Logger.getLogge...

  • c#中virtual、override、new的区别

    Virtual 用于父类中,声明某方法可以重写,该方法不能是static; override(覆盖继承) 用于子类...

  • final关键字

    一、修饰方法 1,父类public final方法,子类无法重写。 2,父类定义一个public方法,子类可以重写...

  • 秒表 计时器

    private static final int TICK_WHAT =2; private static fin...

  • Android Toast提示工具类

    public final class ToastUtils { private static final int ...

网友评论

      本文标题:private/final/static 则子类就不能重写该方法

      本文链接:https://www.haomeiwen.com/subject/ujnvrrtx.html