クラスベース:
public class Base {
private String name = "base";
public Base() {
tellName();
printName(name);
}
public void tellName() {
System.out.println("Base tell name:" + name);
}
public void printName(String name) {
System.out.println("Base print name:" + name);
}
}
クラス派生:
public class Derived extends Base {
private String name = "Derived";
public Derived() {
tellName();
printName(name);
}
public void tellName() {
System.out.println("Derived tell name:" + name);
}
public void printName(String name) {
System.out.println("Derived print name:" + name);
}
public static void main(String[] args) {
Derived derived = new Derived();
}
}
結果:
Derived tell name:null
Derived print name:base
Derived tell name:Derived
Derived print name:Derived
最近、こんな質問をされました。考えてみましたが、なぜこのプログラム部分がこのような実行結果になるのか、はっきりした答えはありませんでした。誰かが私がそのような問題を分析するのを手伝ってくれることを願っています. どうもありがとう!^-^
派生条件でのコンストラクターの実行プロセスを知りたいだけです。