静态(static)方法的继承和重写
2009-11-12 20:50
218 查看
静态方法大家应该都比较熟悉,在这里主要谈一下静态方法在继承时的一些注意事项。
1、父类方法如果是静态方法,子类不能覆盖为非静态方法;
2、父类方法如果是非静态方法,子类不能覆盖为静态方法;
3、父类静态方法可以被覆盖,允许在子类中定义同名的静态方法,但是没有多态。
下面对第3条特性进行一下代码演示:
class Demo{
public static void display(){
System.out.println("hello");
}
}
class DemoTest extends Demo{
public static void display(){
System.out.println("nihao");
}
}
public class TestStaticExtend{
public static void main(String args[]){
Demo d=new Demo();
d.display();
d=new DemoTest();//注意观察这条语句的输出,是输出hello还是nihao
d.display();
}
}
析:运行该程序你会发现输出的是两个hello,这就是上面所说的“没有多态”,当你将红色的static去掉之后再运行会发现输出的是hello和nihao,此时恢复了多态。
1、父类方法如果是静态方法,子类不能覆盖为非静态方法;
2、父类方法如果是非静态方法,子类不能覆盖为静态方法;
3、父类静态方法可以被覆盖,允许在子类中定义同名的静态方法,但是没有多态。
下面对第3条特性进行一下代码演示:
class Demo{
public static void display(){
System.out.println("hello");
}
}
class DemoTest extends Demo{
public static void display(){
System.out.println("nihao");
}
}
public class TestStaticExtend{
public static void main(String args[]){
Demo d=new Demo();
d.display();
d=new DemoTest();//注意观察这条语句的输出,是输出hello还是nihao
d.display();
}
}
析:运行该程序你会发现输出的是两个hello,这就是上面所说的“没有多态”,当你将红色的static去掉之后再运行会发现输出的是hello和nihao,此时恢复了多态。
相关文章推荐
- 【转载】静态(static)方法的继承和重写
- static的继承,静态方法只能继承,不能重写
- 静态(static)方法的继承和重写
- Android java基础静态(static)方法的继承和重写,面试常问
- java 静态(static)方法的继承和重写
- 静态(static)方法的继承和重写
- 静态(static)方法的继承和重写
- static的继承:静态方法只能隐藏(hidden),不能重写(override)
- 静态(static)方法的继承和重写
- 方法的重载与重写的关系(区别);static关键字;单例设计模式;继承;
- 子类继承父类(重写父类的静态方法,子类方法必须也是静态的)
- [Java]static、final修饰的方法是否可以被子类继承、是否可以被子类重写及final修饰详解
- PHP-静态方法(static)继承等分析
- 静态(static)方法不可以重写(override)
- 关于Java中子类能否继承和重写父类的静态方法问题
- java中静态(static)的方法为什么不能重写(override)
- JAVA,假重写,方法假重写,继承父类时的静态方法假重写,静态方法假重写
- 子类继承父类重写静态方法不能变成普通方法
- 静态方法隐藏、重写、继承
- 关于继承中(静态方法+私有方法)的覆盖与重写问题