Java 8では、メソッドの本文の記述を可能にする「デフォルトメソッド」が導入されました。Javaのインターフェイスから子フィールドにアクセスするには?
1つのインターフェースと2つの子クラスを作成したいとします。
public interface URL {
int getURL() {
return this.myURL;
} // obviously
}
と私はmyURLフィールドを定義したい2つのクラスで:
public class MyURL1 implements URL {
private String myURL = "http://test1.com";
}
public class MyURL2 implements URL {
private String myURL = "http://test2.com";
}
のgetURLによって返されるインターフェイスのURLで、私はのgetURL()メソッドを持っているしたいのですが。
Javaで可能ですか?
しかし、それは次のスーパーが前のURL値を上書きする方法を消していないのだろうか? – paus
@paus 'UrlHolder1'と' UrlHolder2'は別々のクラスですから、互いに邪魔になることはありません。それぞれのインスタンスには 'url'フィールドがあり、すべての' UrlHolder1''' url'は '' myurl1''に設定されます。非公開であるため、オブジェクトのライフサイクルにわたって変更されることはありません。 – daniu
はい、UrlHolder1とUrlHolder2は別ですが、urlフィールドを持つ親抽象クラスは共通です。これが私を混乱させます。 – paus