您的位置:首页 > 编程语言 > Java开发

java 静态(static)方法的继承和重写

2015-10-30 15:28 477 查看
静态方法大家应该都比较熟悉,在这里主要谈一下静态方法在继承时的一些注意事项。

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,此时恢复了多态。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: