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

extendsによる継承

Java Sample

クラスの継承には、extendsを使う・・・。

まずBaseClass.javaに、

整数値iと文字列strを持つ基底クラスBaseClassを用意する・・・。

次にDerivedClass.javaに、BaseClassの派生クラスDerivedClassを定義する・・・。

継承するには、このように派生クラスの後に、extendsを付けて、さらに後ろに基底クラスを書く・・・。

DerivedClassでは、i, strに加えて、実数値のf、真偽値のbを持つようにする・・・。

コンストラクタは、

iとstrはBaseClassのprivateメンバなので、直接アクセスできないのでsetメソッドで初期値をセット・・・。
そして、fに0、bにfalseをセット・・・。

setメソッドも、

BaseClassのiとstrにアクセスできないので、BaseClassのsetメソッドを使う・・・。
引数が違うので、この場合はthisをつけなくてもBaseClassのsetであると認識してくれる・・・。
そしてthis.fに引数f、this.bに引数bをセット・・・。

outputにすると、引数が同じなので、区別のためにoutputAllと、BaseClassとは名前を変えている・・・。
BaseClassのoutputを呼んで、iとstrを出力した後、printlnでfとbを出力・・・。

オブジェクトderivedを生成・・・。

outputAllで、一旦出力・・・。

setで50, "ABCDE"をセット・・・。
呼ばれているのはBaseClassのsetメソッド・・・。

ここでoutputAllで、また出力・・。

100, "VWXYZ", 0.123f, trueをセット・・・。
引数が4つなので、DerivedClassのsetメソッドが呼ばれる・・・。

最後にoutputAllで出力・・・。

i = 0, str = -
f = 0.0, b = false
i = 50, str = ABCDE
f = 0.0, b = false
i = 100, str = VWXYZ
f = 0.123, b = true

最初の2行は、値をセットしていないので、初期値がセットされている・・・。
次の2行は、BaseClassのsetなので、iとstrだけセットされている・・・。
最後の2行は、DerivedClassのsetなので、iとstrに加えて、fとbもセットされている・・・。

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