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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

class Fu
{
          public static void method( )
          {
                  System.out.println("父类method");
          }
}

class Zi extends Fu
{
          public static void method( )
          {
                  System.out.println("子类method");
          }
}

class FuZiDemo
{
          public static void main(String[] args)
          {
                 Fu f = new Zi( );
                 f.method( );
          }
}
打印结果为:父类method。这是否说明,子类中的静态方法,不会覆盖父类中的静态方法?

评分

参与人数 1技术分 +1 收起 理由
Sword + 1

查看全部评分

6 个回复

倒序浏览
静态只与类有关,在多态中,静态成员特点是无论编译还是运行,都参考左边,静态本身也无需创建对象即可调用!
回复 使用道具 举报
在多态中成员函数的特点:
在编译时期:参阅引用型变量所属的类中是否有调用的方法。如果有,编译通过,如果没有编译失败。
在运行时期:参阅对象所属的类中是否有调用的方法。
简单总结就是:成员函数在多态调用时,编译看左边,运行看右边。


在多态中,成员变量的特点:
无论编译和运行,都参考左边(引用型变量所属的类)。


在多态中,静态成员函数的特点:
无论编译和运行,都参考做左边。

评分

参与人数 1技术分 +1 收起 理由
刘胜寒 + 1

查看全部评分

回复 使用道具 举报
楼上,正解

有了继承,就有了多态

建议看看多态视频部分
回复 使用道具 举报
静态方法不需要创建对象就可以调用,所以无所谓是否覆盖,谁调用就执行谁。父类调用就执行父类中的静态方法,子类调用就执行子类中的静态方法。
回复 使用道具 举报
学习了~~~~~
回复 使用道具 举报
成员方法如果是静态的,父亲调用的永远是父亲的,儿子调用永远是儿子的,不能被重写。简单点说,就是:编译看左边,执行看左边。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马