java中父类的静态方法不能被重写
2016-07-23 00:00
435 查看
Java中父类的静态方法确实不能被重写的,但是有的人可能去做实验发现在子类中去重写父类static方法时,并没什么问题。这里我来具体解释下。
public class Parent {
public static void add(){
System.out.println("=========Parent");
}
}
public class Children extends Parent {
public static void add(){
System.out.println("=========Children");
}
}
上面两个类并没发现在系统中报错,并通过测试
public static void main(String[] args) {
Children ch = new Children();
//Parent ch = new Children();
ch.add();
}
上面的测试可以执行通过;但是大家注意红色标注部分,问题就在这里,这两句引用的实例都是new Children();如果静态方法能被重写,这两句执行结果应该都为"=========Children“,但是事实不是这样,两句都是各自调用各自的方法。所以说静态方法并没被重写,两者的方法各自独立。
public class Parent {
public static void add(){
System.out.println("=========Parent");
}
}
public class Children extends Parent {
public static void add(){
System.out.println("=========Children");
}
}
上面两个类并没发现在系统中报错,并通过测试
public static void main(String[] args) {
Children ch = new Children();
//Parent ch = new Children();
ch.add();
}
上面的测试可以执行通过;但是大家注意红色标注部分,问题就在这里,这两句引用的实例都是new Children();如果静态方法能被重写,这两句执行结果应该都为"=========Children“,但是事实不是这样,两句都是各自调用各自的方法。所以说静态方法并没被重写,两者的方法各自独立。
相关文章推荐
- Java Se----函数
- java JSON学习—List集合转换成JSON对象
- java设计模式-----单例设计模式
- java设计模式-----单例设计模式
- spring事务管理UnexpectedRollbackException
- Java注释@interface的用法
- Java-implements方面(The method adduser(user) of type user_dao_pleme must override or implement a supe)
- 动态代理 (JDK代理)
- Spring Boot异常:BeanCreationException:Injection of autowired dependencies failed;
- Java学习笔记3——File
- 二、Java运算符,表达式和语句
- myeclipse项目导入eclipse方法
- java循环遍历的做法
- 使用jdk1.8出现有些类can not be resolved的情况
- Java的注解机制——Spring自动装配的实现原理
- java关于获取当前时间及其昨天时间的用法
- javaee之session的购物车练习
- javaee之cookie和session的见解和练习
- Java 内存区域和GC机制
- java String.split()函数的用法分析