问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

子类为什么不能重写父类的静态方法42

发布网友 发布时间:2024-02-20 18:33

我来回答

2个回答

热心网友 时间:2024-07-24 00:34

"重写"只能适用于实例方法.不能用于静态方法.对于静态方法,只能隐藏(形式上被重写了,但是不符合的多态的特性),“重写”是用来实现多态性的,只有实例方法是可以实现多态,而静态方法无法实现多态。例如: Employee man = new Manager(); man.test();实例化的这个对象中,声明的man变量是Employee类的,变量名存在栈中,而内存堆中为对象申请的空间却是按照Manager类来的,就是Employee类型的man变量的指针指向了一个Manager类的对象。如果对这个man调用方法,调用的是谁的?如果是非静态方法,编译时编译器以为是要调用Employee类的,可是实际运行时,解释器就从堆上开工了,实际上是从Manager类的那个对象上走的,所以调用的方法实际上是Manager类的方法。有这种结果关键在于man实际上指向了Manager类对象。现在用man来调用静态方法,实际上此时是Employee类在调用静态方法,Employee类本身肯定不会指向Manager类的对象,那么最终调用的是Employee类的方法。 由此,只能说形式上静态方法的却可以被重写,实际上达不到重写的效果,从多态的角度可以认为子类实际上是写了一个新方法,从这个角度上说静态方法无法被重写。那么也就证明了重写和覆盖就是一回事。例如:public class TestStaticMethodExtends { public static void main(String[] args) { A a = new B(); a.p(); } } class A { public static void p() { System.out.println("基类"); } } class B extends A { public static void p() { System.out.println("子类"); } } 输出:基类

热心网友 时间:2024-07-24 00:31

当然不能,所谓静态,就是在运行时,虚拟机已经认定此方法属于哪个类。 专业术语有严格的含义,用语要准确."重写"只能适用于实例方法.不能用于静态方法.对于静态方法,只能隐藏(楼下说的可以重写那只是形式上的 ,并不满足多态的特征,所以严格说不是重写),重载,继承.
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
虹口区东余杭路541弄算几号地块?12年下半年号称要拆,附近都在拆类,明... 我想知道新建路东余杭路这二年有没有拆迁规划? 手机通话变声器哪种好 变声器哪个好用 我准备7月底开始复习考研,还来得及吗 大四下学期考研还来得及吗 考研还来得及吗 ...在脊椎骨右边靠脊椎骨附近疼,是什么原因,大概有半个多月了,弯腰时... 电脑开着总是无缘无故蓝屏提示 电脑开着总是无缘无故蓝屏 电脑无缘无故蓝屏怎么回事探究电脑突然蓝屏的原因 支付宝的公爵和骑士卡有什么区别 微信手机号在24小时内,已绑定两个,已达到限制,不能在绑定其他微信... 如何用一个手机号注册两个? 微信手机号在24小时内,已绑定两个,已达到限制,不能在绑定其他微信... 参观西湖的徒步线路怎么安排合适? 微信手机号在24小时内,已绑定两个,已达到限制,不能在绑定其他微信... 手机号1 24 手机号24小时内绑定了两个被限制 请问什么时候才能重 ... JAVA中父类的非静态方法不能被子类覆盖为静态方法,父类的静...11 春游西湖的观景线路可以怎么安排? 全球购骑士卡和全球公爵的区别 关于微信绑定上限的问题:你的手机号在最近24小时内已绑定过3个... 如何一年内强制二次修改? ...号在最近24小时内绑定过三个,已达到限制,...24小时后可以再次... 浙江杭州的春游赏景路线应该怎么安排? 公司显示“通过登记的住所或经营场所无法联系”已载入经营异常名录... 手机号1 24 手机号24小时内绑定了两个被限制 请问什么时候才能重 ... 关于微信绑定上限的问题:你的手机号在最近24小时内已绑定过3个... 微信手机号在24小时内,已绑定两个,已达到限制,不能在绑定其他微信... 微信手机号在24小时内,已绑定两个,已达到限制,不能在绑定其他微信... 您的手机号在最近24小时内绑定过三个,已达到限制,...24小时后... 在java 中子类对象为什么不能比父类对象有更严格的访问权限...22 全球公爵和骑士卡有什么区别 java问题,子类能不能重写父类的静态方法??107 ...号在最近24小时内绑定过三个,已达到限制,...24小时后可以再次... 您的手机号在最近24小时内绑定过三个,已达到限制,...24小时后... 全球购骑士卡和全球公爵的区别 如何一年内强制二次修改? 微信手机号在24小时内,已绑定两个,已达到限制,不能在绑定其他微信... 支付宝的公爵和骑士卡有什么区别 如何一年内强制二次修改 微信手机号在24小时内,已绑定两个,已达到限制,不能在绑定其他微信... 微信手机号在24小时内,已绑定两个,已达到限制,不能在绑定其他微信... 公爵和骑士卡有啥不同 全球公爵和全球购骑士卡哪个好? ...号在最近24小时内绑定过三个,已达到限制,...24小时后可以再次... 一年内第二次强制修改 如何强制二次修改 ...为保护您的帐号、数据等安全,系统已自动冻结QQ。 怎么强制修改第二次 全球公爵怎么使用全球公爵使用方法是什么