java中静态(static)的方法为什么不能重写(override)
来源:互联网 发布:java编程思想中文版pdf 编辑:程序博客网 时间:2024/05/18 02:02
父类的普通方法可以被继承和重写,不多作解释,如果子类继承父类,而且子类没有重写父类的方法,但是子类会有从父类继承过来的方法。
静态的方法可以被继承,但是不能重写。如果父类中有一个静态的方法,子类也有一个与其方法名,参数类型,参数个数都一样的方法,并且也有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中静态(static)的方法为什么不能重写(override)
- java中静态(static)的方法为什么不能重写(override)
- static的继承:静态方法只能隐藏(hidden),不能重写(override)
- 静态(static)方法重写(override)
- 静态(static)方法重写(override)
- java静态方法的重写,为什么不能?
- 静态(static)方法不可以重写(override)
- Java中为什么静态方法不能被重写?为什么静态方法不能隐藏实例方法?
- Android开发中为什么不能标记重写(@override)抽象方法(abstract)
- Android开发中为什么不能标记重写(@override)抽象方法(abstract)
- java为什么不能重写静态方法
- java中重写(override)的总结
- Java的静态方法不能被重写(详解!)
- 方法的重写(override)
- spring注入时bean的set方法为什么不能是static类型的?(为什么要用单例模式而不是静态方法)
- 子类为什么不能重写父类的静态方法
- 子类为什么不能重写父类的静态方法
- 子类为什么不能重写父类的静态方法
- KVM虚拟化系列之virio -------virtio scsi host driver
- nyoj 97 兄弟郊游问题
- auto_ptr解析
- 播放IPod音乐
- 【RSLogix5000】—丫的得学习RSLogix5000编程啦!
- java中静态(static)的方法为什么不能重写(override)
- 九度OnlineJudge之1464:Hello World for U
- 在js中直接获得action中的属性值
- Asterisk 未来之路3.0_0005
- 小功能实现
- 【转载】java中final的意义
- android Theme使用总结
- ANDROID中LAYOUTINFLATER的使用
- php 读取memcache二进制数据