教育・子育て

java chapter 18 ポリモーフィズム ③

マんタ's icon'
  • マんタ
  • 2025/03/07 04:58

凄く久しぶりだけど・・・前回の続き・・・去年の9月で止まってた(´;ω;`)

 

で、今回はオーバーライドについてやっていきます。

サブクラスでは、メソッドを追加する以外に継承したメソッドの機能を変更することができる。

ただし、機能の変更は ちょっと変えてみよう と思って自発的に行うものとは少し違います。

機能の変更は、継承しただけでは役立たずのメソッド、変更しなければコンパイルエラーになるメソッド(このため、スーパークラスでは抽象クラスという特別な仕掛けを使う場合がある。それについては次の章で説明します。

大事なことは

継承したからには、変更しなくてはならないようになっている

                    特別な継承が機能を変更する継承です。

 

理由として、

スーパークラスで大まかな仕組みを作っておいて機能の詳細はサブクラスで仕上げる 

という場合に使う方法だからです。

 

 

継承したメソッドの機能を変えるには、同じ名前のメソッドを作って、処理内容だけを変えます。

メソッドのアクセス修飾子、戻り値型、引数の型、数、並びは原則同じにします。

この様な書き換えを オーバーライド といいます。

詳しくはもう少し先で説明します。

 

1.toStringメソッド

toStringメソッドは、オブジェクトのフィールド変数の値などを文字列にして返すメソッドです。

package sample18_03;
public class Exec {
	public static void main(String[] args) {
		Member member = new Member(118, "田中宏");	// 
		System.out.println(member.toString()); 		// toString
	}
}

プログラムのほうはこんな感じになりますね。

起動してみると・・・・・

Content image

 

 

コンソールにこう表示されます。

 

 

2.オーバーライドの方法

 ここからは、オーバーライドの方法についてやっていこうと思います。

まず、MemberクラスでtoStringメソッドをオーバーライドしてみます。

その前に書き方を・・・

 

public String toString()

   引数;    なし

        戻り値; オブジェクトの文字列表現を返す

 

オーバーライドするためには、これと全く同じ形式でメソッドを定義しなくてはいけません。

原則として、アクセス修飾子、引数、戻り値型を変更しないことが要件です

 

package sample18_04;
public class Member {
	private int	id;
	private String name;
	public Member(int id, String name) {
		this.id	  = id;
		this.name = name;
	}
	
	@Override=======================
	public String toString(){
		return	"Member[id="+id+", name="+name+"]";     オーバーライド
	}===========================
	
	public int getId() {
		return id;
	}
	public String getName() {
		return name;
	}
}

 

@Override
	public String toString(){
		return	"Member[id="+id+", name="+name+"]";
	}

この部分がオーバーライドしたtoStringメソッドです。

クラス名と変数名、変数の値を文字列に合成して返す、という内容です。

また、Java言語では、@で始まるものをアノテーションといい、コンパイラに情報を伝えるために使われる。

@Override

は、Overrideアノテーションといいこのメソッドがオーバーライドメソッドであることを示しています。

★オーバーライドの規則

ここで、オーバーライドの規則についてまとめておきます。

 オーバーライドの規則

①引数の型、数、並び順を変更しない。

②原則として戻り値型を変更しない

 ただし、戻り値型がオブジェクトの場合、サブクラス型に変えてもいい。

③アクセス修飾子は、より公開範囲の広いものだけに変更してもよい。

今回はここまでにしておきますかね・・・

参考書は__________________________________

新わかりやすい Java

川場 隆  Kawaba Takashi

秀和システム

______________________________________

BY マんタ

 

 

 

 

Supporter profile iconSupporter profile icon
Article tip 2人がサポートしています
獲得ALIS: Article like 17.57 ALIS Article tip 22.20 ALIS
マんタ's icon'
  • マんタ
  • @25kit6
12月!今年も最後の一カ月!寒さもキツくなってきたから体調管理はしっかりしていかないとね WWW

投稿者の人気記事
コメントする
コメントする
こちらもおすすめ!
Eye catch
他カテゴリ

京都のきーひん、神戸のこーへん

Like token Tip token
12.10 ALIS
Eye catch
ビジネス

海外企業と契約するフリーランス広報になった経緯をセルフインタビューで明かす!

Like token Tip token
16.10 ALIS
Eye catch
他カテゴリ

BCAAは本当に必要なのか?徹底的調査

Like token Tip token
1.20 ALIS
Eye catch
他カテゴリ

警察官が一人で戦ったらどのくらいの強さなの?『柔道編』 【元警察官が本音で回答】

Like token Tip token
125.92 ALIS
Eye catch
トラベル

無料案内所という職業

Like token Tip token
84.20 ALIS
Eye catch
他カテゴリ

機械学習を体験してみよう!(難易度低)

Like token Tip token
124.82 ALIS
Eye catch
クリプト

Bitcoinの価値の源泉は、PoWによる電気代ではなくて"競争原理"だった。

Like token Tip token
159.32 ALIS
Eye catch
他カテゴリ

オランダ人が語る大麻大国のオランダ

Like token Tip token
46.20 ALIS
Eye catch
他カテゴリ

ALISのシステム概観

Like token Tip token
5.00 ALIS
Eye catch
クリプト

Bitcoin史 〜0.00076ドルから6万ドルへの歩み〜

Like token Tip token
947.13 ALIS
Eye catch
クリプト

ジョークコインとして出発したDogecoin(ドージコイン)の誕生から現在まで。注目される非証券性🐶

Like token Tip token
38.31 ALIS
Eye catch
クリプト

NFT解体新書・デジタルデータをNFTで販売するときのすべて【実証実験・共有レポート】

Like token Tip token
121.79 ALIS