java实例方法被覆盖,静态方法被隐藏Explain(详解)

时间:2022-04-26 08:01:40

被覆盖比较好理解,类似于多态的实现,访问时通过类方法表来访问,你实际是什么类型,访问的方法就是那个类型的方法而不会是你的父类的方法。

隐藏是指静态方法的访问是根据当前对象的表面类型来决定的,比如

Super s = new Sub();

s.greeting()访问的是Super的静态方法,如果是Sub s = new Sub();则访问的是Sub的静态方法。

换句话说,这个实现不了多态。

此外,静态方法和实例方法不能互相覆盖(会报错),因为他们的在字节码中的的绑定位置不同。

以上这篇java实例方法被覆盖,静态方法被隐藏Explain(详解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。