Java中的静态方法能否被重写?
2015-02-27 11:58
218 查看
*非静态方法属于类的实例,是可以被子类重写,从而达到多态的效果;
静态方法属于类,是不能被重写,故而也不能实现多态。*
下面是具体的验证过程
首先,定义一个超类A,里边定义一个静态方法和一个非静态方法:
接下来,定义一个子类B,里边定义一个静态方法和一个非静态方法(形式上像是重写了超类的方法):
在接下来,我们进行测试:
运行结果:
从运行结果,我们可以知道,对于非静态方法,实现了多态的效果,而静态方法却没有。
静态方法属于类,是不能被重写,故而也不能实现多态。*
下面是具体的验证过程
首先,定义一个超类A,里边定义一个静态方法和一个非静态方法:
public class A { public void unstaticMethod() { System.out.println("SuperClass unstaticMethod"); } public static void staticMethod() { System.out.println("SuperClass staticMethod"); } }
接下来,定义一个子类B,里边定义一个静态方法和一个非静态方法(形式上像是重写了超类的方法):
public class B extends A { public void unstaticMethod() { System.out.println("SunClass unstaticMethod"); } public static void staticMethod() { System.out.println("SunClass staticMethod"); } }
在接下来,我们进行测试:
public class Test { @SuppressWarnings("static-access") public static void main(String[] args) { A a = new A(); A a2 = new B(); a.unstaticMethod(); a2.unstaticMethod(); a.staticMethod(); a2.staticMethod(); } }
运行结果:
SuperClass unstaticMethod SunClass unstaticMethod SuperClass staticMethod SuperClass staticMethod
从运行结果,我们可以知道,对于非静态方法,实现了多态的效果,而静态方法却没有。
相关文章推荐
- java_静态方法能否被子类重写
- Java编程子类能否重写父类的静态方法探索
- 关于Java中子类能否继承和重写父类的静态方法问题
- java静态方法能否被重写
- java静态方法能否被重写
- Java中static静态类和静态方法隐藏、重写、继承
- JAVA中子类是否可以可以继承、重写父类的静态方法--总结
- Java中父类的静态方法不能被重写
- Java基础重温(六)子类与父类实例方法、静态方法的重写问题
- Java静态属性与静态方法能否被继承的问题
- Java中实例方法,实例变量,静态方法,静态变量,final方法重写的问题,覆盖
- java中父类的静态方法不能被重写
- 浅谈java中静态方法的重写问题详解
- 父类的静态方法能否被子类重写
- Java的父类静态方法不能被重写,只能被隐藏
- java中父类的静态方法不能被重写
- Java的静态方法重写问题
- java中父类的静态方法不能被重写
- Java可以重写静态方法吗?
- 【Java基础之多态中静态方法重写问题】java中静态方法的重写问题详解