A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 笑轻轻 中级黑马   /  2014-8-15 22:30  /  1727 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

请问静态的方法可以被重写吗?从形式来看似乎被重写了,但是看有些资料说不叫重写。而且多态当中调用的还是父类自己的静态方法。

8 个回复

倒序浏览
静态方法是类在加载时就被加载到内存中的方法,在整个运行过程中保持不变,因而不能重写,而且静态方法是通过类名调用的,重写没有意义的。
回复 使用道具 举报
赞同上楼      
回复 使用道具 举报
一楼说的对
回复 使用道具 举报
来自Java官方的权威说法:静态方法不能被重写(override),只能被隐藏(hide),也不参与多态判定
回复 使用道具 举报
在多态中,无论编译或者运行,都参考父类的引用
回复 使用道具 举报
既然都被静态修饰了,就然他做个安静的美男子吧,别去打扰他了
回复 使用道具 举报
  1. class Fu
  2. {       
  3.         public static void show(){
  4.                 System.out.println("Fu类静态方法-----");
  5.         }
  6.         public void method(){
  7.                 System.out.println("Fu类普通方法-----");
  8.         }
  9. }
  10. class Zi extends Fu
  11. {       
  12.         public static void show(){
  13.                 System.out.println("子类静态方法-----");
  14.         }
  15.         public void method(){
  16.                 System.out.println("子类普通方法-----");
  17.         }
  18. }
  19. class  StaticDemo
  20. {
  21.         public static void main(String[] args)
  22.         {
  23.                 Fu f = new Zi();
  24.                 f.show();
  25.                 f.method();
  26.         }
  27. }


  28. 看这个代码,这个应该是静态绑定的问题吧,你再看看
复制代码
回复 使用道具 举报
fantacyleo 发表于 2014-8-16 00:48
来自Java官方的权威说法:静态方法不能被重写(override),只能被隐藏(hide),也不参与多态判定 ...

权威的答案
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马