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

转载 2016年06月02日 09:27:17

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

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

[html] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. public class StaticTest  
  2. {  
  3.     public static void main(String[] args)  
  4.     {  
  5.         M m = new N();  
  6.         m.output();  
  7.     }  
  8. }  
  9.   
  10. class M  
  11. {  
  12.     public static void output()  
  13.     {  
  14.         System.out.println("M");  
  15.     }  
  16. }  
  17.   
  18. class N extends M  
  19. {  
  20.     public static void output()  
  21.     {  
  22.         System.out.println("N");  
  23.     }  
  24. }  

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

N n = new N();

n.output();

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

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

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

父类的普通方法可以被继承和重写,不多作解释,如果子类继承父类,而且子类没有重写父类的方法,但是子类会有从父类继承过来的方法。 静态的方法可以被继承,但是不能重写。如果父类中有一个静态的方法,子类也有...
  • ycb1689
  • ycb1689
  • 2013年12月06日 11:00
  • 15254

静态(static)方法不可以重写(override)

父类的普通方法可以被继承和重写,不多作解释,如果子类继承父类,而且子类没有重写父类的方法,但是子类会有从父类继承过来的方法。静态的方法可以被继承,但是不能重写。如果父类中有一个静态的方法,子类也有一个...
  • caonima0001112
  • caonima0001112
  • 2016年01月08日 13:26
  • 664

C# Tips: 静态方法可以被override/hide吗?

这个话题说起来有些无聊,可能缺乏实际意义,仅从语言层面讨论而已。 静态方法并不受类的初始化的影响,它是针对类的,而不是针对类的实例的,所以它不可能被override。 如果有一个静态方法被标记为o...
  • XinYaping
  • XinYaping
  • 2013年12月30日 02:02
  • 3449

【Java基础之多态中静态方法重写问题】java中静态方法的重写问题详解

多态:通过父类变量可以引用其子类对象,从而调用子类中那些继承自自己并被重写(覆盖)的方法。 首先来看看以下程序将会打印出什么: class Dog { public static vo...
  • cangchen
  • cangchen
  • 2015年04月09日 15:08
  • 1011

java中方法重写(Override)与方法重载(Overload)的区别

虽然知道方法重写与方法重载,但总是会忘记具体的区别以及一些细节,所以干脆就写一篇博客记录下来吧。 方法重写(Override):        在Java中,子类可继承父类中的方法,而不需要重新编写相...
  • BeauXie
  • BeauXie
  • 2016年10月31日 20:16
  • 1817

overload与override(方法重载与方法重写)

方法重载:方法名相同,但是具有不同的参数集合(参数个数,参数类型和参数的顺序)。 通常用于创建完成任务相似,但又不同数据类型的几个同名方法。调用时,根据参数个数,类型和顺序来选择合适的方法。方法...
  • cui6666ha
  • cui6666ha
  • 2017年12月20日 14:58
  • 26

java 静态方法不能被override

先上代码,看结果分析:  父类:class Base { public static int a = 10; public int b = 20; static { System.out.p...
  • bingliquhuo
  • bingliquhuo
  • 2014年03月17日 11:16
  • 981

方法重写Override笔记及其与Overload(重载)的区别

方法重写概述及其应用 * A:什么是方法重写 * 重写:子父类出现了一模一样的方法(注意:返回值类型可以是子父类) * B:方法重写的应用: * 当子类需要父类的功能,而功能主体子类有自己...
  • uotail
  • uotail
  • 2017年05月03日 22:01
  • 78

方法重写(OverRide)

方法覆盖(方法重写)override:     在继承关系中,如果子类重新定义的一个方法,如果其名称,返回类型及参数签名与父类中的某个方法的名称,返回类型及参数签名相匹配,那么子类的方法覆盖了父类的方...
  • freego1026
  • freego1026
  • 2008年12月15日 11:38
  • 2503

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

原文地址:http://blog.csdn.net/lubiaopan/article/details/4804139 静态方法大家应该都比较熟悉,在这里主要谈一下静态方法在继承时的一些注意事项。...
  • qingning1
  • qingning1
  • 2015年03月22日 15:56
  • 280
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:静态(static)方法重写(override)
举报原因:
原因补充:

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