BaseClassときどき、インターフェイスを実装する抽象を作成IBaseClassしChildClass、BaseClass. つまり、次のとおりです。
public interface IBaseClass {
}
public abstract class BaseClass implements IBaseClass {
}
public class ChildClass extends BaseClass {
}
ここで、インターフェースがあり、それIChildClassをChildClass実装するとします。
public class ChildClass extends BaseClass implements IChildClass {
}
そして、IBaseClasshas メソッドがあるとしsomeMethodます。のインスタンスを次のようなChildClass実装インターフェイスで使用する場合IChildClass:
IChildClass obj = new ChildClass();
その後、あなたは呼び出すことができませんobj.someMethod()。次に、これを行う必要があります。
public interface IChildClass extends IBaseClass {
}
Java 1.2 のドキュメントで、最新バージョンではインターフェイスjava.util.Listが拡張されていないことがわかります。は当時最高のインターフェースであり、. を順番に拡張します。当時は最高級でした。現在実装しています。したがって、Java の常に拡張可能なパターンを念頭に置いて、この設計パターンに従っていることは明らかです。java.util.Collectionjava.util.Listjava.util.AbstractListListArrayListAbstructListAbstractCollectionAbstractCollectionAbstractCollectionCollection