からスーパークラスのメソッドを呼び出すだから私は、次のコードを持っている:スーパー:私は何を得るは、サブクラスのインスタンス
class Super {
private String name="super";
public String name(){
return this.name;
}
}
class Sub extends Super {
private String name = "sub";
}
public class Main {
public static void main(String[] args) {
System.out.println(new Sub().name());
}
}
を結果があるようです。 なぜ私は知りませんでしたか?メソッドname()
は、呼び出されたオブジェクトのthis
を呼び出す予定ではなく、Sub
がSuper
を継承しているため、そのメンバーで使用できるはずです。
**覚えておくべき簡単なルールは次のとおりです。**フィールドはポリモーフィックではありません**、メソッドは(プライベート、ファイナル、または静的でない限り)のみです。 – Pshemo