【发布时间】:2020-10-26 20:59:32
【问题描述】:
我在网上阅读了几个关于是否可以覆盖私有方法的相互冲突的资料。 那么这个例子到底发生了什么?方法移动被隐藏了吗?
class Animal {
private void move() {
System.out.println("Animals can move");
}
}
class Dog extends Animal {
public void move() {
System.out.println("Dogs can walk and run");
}
}
public class TestDog {
public static void main(String args[]) {
Dog b = new Dog(); // Dog reference and Dog object
b.move(); // runs the method in Dog class
}
}
https://docs.oracle.com/javase/specs/jls/se8/html/jls-8.html 说它在技术上不是压倒一切的,所以这叫什么,会不会有任何意外的行为?
【问题讨论】:
-
Animal reference but Dog object但它似乎是Dog参考 -
@NitinBisht 错字,已修复,谢谢
-
@Ivar 不,我问的是隐藏而不是覆盖
-
@Goldname 那么隐藏是什么意思?是不是很隐蔽?您是否设法以某种方式将“动物可以移动”带到您的控制台?
-
@Ivar 在这个意义上隐藏stackoverflow.com/questions/10594052/…
标签: java inheritance access-modifiers