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,此时恢复了多态。
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,此时恢复了多态。
相关文章推荐
- spring基础包
- Java中的自动装箱与拆箱
- Java,数据库,,,优化问题
- java zip malformed解决
- Eclipse,MyEclipse 安装SVN插件
- Eclipse,MyEclipse 安装SVN插件
- Eclipse,MyEclipse 安装SVN插件
- Eclipse,MyEclipse 安装SVN插件
- MyEclipse 10.5 安装SVN插件
- java中的枚举介绍与简单应用
- 安装jdk出现问题:Error opening registry key'software\Javasoft\Java Runti
- 【java web】--html、xhtml、xml进化史
- Java异常机制
- 获取两个日期之间的相差月份
- java创建对象的四种方法
- maven学习jdk路径配置问题
- Spring 完美整合 Jersey
- Java生成10个1000以内的随机数并用消息框显示数组内容然后求和输出
- Java集合的总结
- 全方位的技术服务及相关技术解决方案(纯java解决方案)