您不能覆盖
private方法。如果投射
A到,则看不到
B。您 可以
覆盖一个
protected方法,但这不是您要在此处执行的操作(是的,在这里,如果将移至
main,
A则会得到另一个方法。我建议
@Override您在打算覆盖时注解,
class A extends B { @Override public void don() { // <-- will not compile if don is private in B. System.out.println("hoho public"); }}在这种情况下,为什么编译器没有提供使用
t.don()is是错误private?
Java教程:预定义的注释类型说(部分)
虽然在重写方法时不需要使用此批注,但它有助于防止错误。如果标有的方法
@Override无法正确覆盖其父类之一中的方法,则编译器将生成错误。



