ポリモーフィズムについてなかなか理解が進みません。コンストラクタ、has-aの関係、インスタンスの生成など色々盛り沢山で混乱しています。(盛り沢山なのは当たり前なのでしょうが、、、)
以下のコードがあります。
混乱部分①
private A aはフィールド宣言+このクラスでしか使えない。
それをコンストラクタの引数に渡している?どうゆうこと?となっています。
②
コード5
Sample s = new Sample(new B());
この(new B());とあります。問題集の解説をみるとSampleインスタンスの生成に続いてBのインスタンスを生成と書いてあります。こんなインスタンスの生成の仕方あるの?と混乱しています。
③
そもそもこのコードはどのような目的のコードなのか理解に苦しんでいます。
何かアドバイスがいただければ幸いです。
混乱で自分自身が何の理解に苦しんでいるのかもわからなくなっています。
引っかかっているのはコード1の
private A a;
public Sample(A a){
this.a = a;
この3行の意味が知りたいです。
コード1 public class Sample { private A a; public Sample(A a){ this.a = a; } public void method(){ a.test(); } } コード2 ublic class A { public void test(){ System.out.println("A"); } } コード3 public class B extends A{ public void test(){ System.out.println("B"); } } コード4 public class C extends A{ public void test(){ System.out.println("C"); } } コード5 public class Main { public static void main(String[] args){ Sample s = new Sample(new B()); s.method(); } }
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/20 12:37