読者です 読者をやめる 読者になる 読者になる

implementsによるインターフェイスの実装

Javaでは、2つ以上の親クラスから継承する多重継承という方法が使えない・・・。
そこで、インターフェイスというメソッドの宣言のみのクラスの様なものを使う・・・。

インターフェイスはクラスとは違い、複数指定することができる・・・。
そして、インターフェイスメソッドは宣言のみなので、自分で処理を実装する必要がある・・・。

今回は、基底クラスBaseClassを継承し、SetInterface、GetInterfaceを実装した派生クラスDerivedClassを定義する・・・。

まず、BaseClass.javaに、

このように定義・・・。
outputメソッドしかなく、printlnで"ABCDE"と出力するだけ・・・。

SetInterface.javaを用意し、

iだけをセットするset、strだけをセットするset、iとstr両方をセットするsetの宣言だけをしたSetInterfaceを書く・・・。

GetInterface.javaの、

GetInterfaceには、intの値iを取得するgetInt、Stringの文字列strを取得するgetStringを宣言・・・。

クラスの継承とインターフェイスの実装を両方やる場合、

<派生クラス名> extends <基底クラス名> implements <インターフェイス名>, ... {

}

こう書く・・・。

なので、DerivedClassは、

となる・・・。

メソッドを実装する・・・。

SetInterfaceから持ってきたsetメソッドを、

このように実装する・・・。

GetInterfaceから持ってきたメソッドは、

こうする・・・。

最後にoutputメソッドは、

とオーバーライド・・・。

MainClass.javaで、

BaseClassオブジェクトbaseを作成し、output・・・。

Derivedオブジェクトderivedを作成し、10と"ABC"をセット・・・。
その後、getIntとgetStringで値を取り出して、それらをprintlnで出力・・・。
その後、derived.outputを呼ぶ・・・。

ABCDE
i = 10, s = ABC
i = 10, str = ABC

最初はBaseClassのoutputなので、"ABCDE"を出力・・・。
次は、setで10と"ABC"をセットした後、getIntとgetStringで取得したものをprintlnで出力・・・。
最後はDerivedClassのoutoutなので、iとstrを出力・・・。

Sample/MainClass.java at master · bg1bgst333/Sample · GitHub
Sample/BaseClass.java at master · bg1bgst333/Sample · GitHub
Sample/SetInterface.java at master · bg1bgst333/Sample · GitHub
Sample/GetInterface.java at master · bg1bgst333/Sample · GitHub
Sample/DerivedClass.java at master · bg1bgst333/Sample · GitHub