委譲・継承
Inheritance.java
public class Inheritance extends SuperClass implements Interface { public void method(){ super.doSomething(); } }
Delegation.java
public class Inheritance implements Interface { SuperClass superClass; public void method(){ superClass.doSomething(); } }
SuperClassがprotectedな要素を持たない場合、継承と同様に振舞う委譲を作ることができる。ただし、委譲ではタイプ量が増加しがちなためIDEや構文による適切な補助が必要だろう。また、SuperClassがabstract protectedなメソッドを持ったスケルトン実装の場合、単純な継承よりもAspect的に解決した方が簡潔な表現が得られる。