-3
以下のコードは、継承によってメソッドm()を再利用する方法を示しています。どのように委任のために働くのですか?ありがとう!継承と委任
class A{
int m();
}
class B extends A{}
B b =new B()
b.m();
以下のコードは、継承によってメソッドm()を再利用する方法を示しています。どのように委任のために働くのですか?ありがとう!継承と委任
class A{
int m();
}
class B extends A{}
B b =new B()
b.m();
class B {
int m() {
return new A().m();
}
}
又は
class B {
private A a = new A();
int m() {
return a.m();
}
}
又は
class B {
private A a;
public B(A a) {
this.a = a;
}
int m() {
return a.m();
}
}
継承手段-Aは: "クラスBのインスタンスであるクラスAのインスタンス"。
構成は、HAS-A:「クラスBのインスタンスHAS-Aクラスのインスタンス」を意味します。
class B {
private A a;
public B(A a) { this.a = a; }
public int m() { return a.m(); }
}
クラスB Mに委譲は、そのコール()の両方が、共通インタフェースを実装する場合、クラスA.
のそのインスタンスには役立つ:このよう
。
public interface DoSomething {
int m();
}
class A implements DoSomething {
public int m() { return 1; }
}
class B implements DoSomething {
private A a;
public B(A a) { this.a = a; }
public int m() { return a.m(); }
}