静态(static)方法重写(override)

原创 2013年12月06日 11:00:23

父类的普通方法可以被继承和重写,不多作解释,如果子类继承父类,而且子类没有重写父类的方法,但是子类会有从父类继承过来的方法。

静态的方法可以被继承,但是不能重写。如果父类中有一个静态的方法,子类也有一个与其方法名,参数类型,参数个数都一样的方法,并且也有static关键字修饰,那么该子类的方法会把原来继承过来的父类的方法隐藏,而不是重写。通俗的讲就是父类的方法和子类的方法是两个没有关系的方法,具体调用哪一个方法是看是哪个对象的引用;这种父子类方法也不在存在多态的性质。《Java编程思想》中这样提到“只有普通的方法调用可以是多态的”。下面代码为例:

public class StaticTest
{
    public static void main(String[] args)
    {
        M m = new N();
        m.output();
    }
}

class M
{
    public static void output()
    {
        System.out.println("M");
    }
}

class N extends M
{
    public static void output()
    {
        System.out.println("N");
    }
}


上面执行的结果是“M”,也就是是M类型的引用调用的,如果修改main方法中的代码:

N n = new N();

n.output();

那么执行的结果是“N”,也就是N类型的引用调用的。

静态的方法不能覆写,也不能被重写。总之,静态的没有重写!!!

Java中的静态方法能否被重写?

*非静态方法属于类的实例,是可以被子类重写,从而达到多态的效果; 静态方法属于类,是不能被重写,故而也不能实现多态。*下面是具体的验证过程首先,定义一个超类A,里边定义一个静态方法和一个非静态方法:...
  • ghgzczxcvxv
  • ghgzczxcvxv
  • 2015年02月27日 11:58
  • 6349

可以重写静态方法吗

http://www.importnew.com/7784.html 问:你可以重写静态方法吗? 答:如果从重写方法会有什么特点来看,我们是不能重写静态方法的。虽然就算你重写静态方...
  • sunmenggmail
  • sunmenggmail
  • 2014年01月11日 12:05
  • 2529

Java细节之static方法重写

前言  Java语言拾遗,高手如果感兴趣可跳过前两节。 类方法  方法被声明为static后,则称为类方法。类方法相对于实例方法,前者区别于后者的地方:前者为属于该类的所有实例对象共享,无须实例化对象...
  • CManLH
  • CManLH
  • 2007年08月22日 23:56
  • 3350

静态(static)方法重写(override)

  • 2016年11月27日 10:47
  • 400KB
  • 下载

Java中为什么静态方法不能被重写?为什么静态方法不能隐藏实例方法?

问题描述Java中为什么静态方法不能被重写?为什么静态方法不能隐藏实例方法?诸如此类。前期准备首先理解重写的意思,重写就是子类中对父类的实例方法进行重新定义功能,且返回类型、方法名以及参数列表保持一致...
  • dawn_after_dark
  • dawn_after_dark
  • 2017年07月04日 21:16
  • 1375

关于静态方法为什么不能被重写的一点思考以及overload的一些坑。

重写”只能适用于可观察的实例方法.不能用于静态方法和final、private.对于静态方法,只能隐藏。一方面这是Java的规定,另一方面其实也有一定的道道这里边。首先谈谈java方法是何时绑定的 ...
  • lihengjing1968
  • lihengjing1968
  • 2016年03月14日 06:13
  • 3261

【转载】静态(static)方法的继承和重写

原文地址:http://blog.csdn.net/lubiaopan/article/details/4804139 静态方法大家应该都比较熟悉,在这里主要谈一下静态方法在继承时的一些注意事项。...
  • qingning1
  • qingning1
  • 2015年03月22日 15:56
  • 276

Java细节之static方法重写

(转载)http://blog.csdn.net/cmanlh/article/details/1755207 版权声明:本文为博主原创文章,未经博主允许不得转载。 前言  ...
  • u010746364
  • u010746364
  • 2016年01月18日 15:35
  • 194

静态方法不能够进行重写

原则:1、静态具有全局的概念,不属于了单个的类实例化对象,而是属于类整体;类定义完成的时候,静态成员便可以使用了,继承类不能重写静态成员函数,假设重写了(当然仍是静态),那么就是说两个全局化的非重载的...
  • todototry
  • todototry
  • 2009年12月06日 13:59
  • 5497

静态方法可以重载但是不可以重写

重载例子public class Test { public static void test(){ System.out.println(“hello”); } public static...
  • wz5779354
  • wz5779354
  • 2016年08月09日 21:02
  • 2481
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:静态(static)方法重写(override)
举报原因:
原因补充:

(最多只允许输入30个字)