-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();
}
}
繼承意味着IS-A: 「類B的一個實例-A類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(); }
}