![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
ある所で下記のような継承についての記述をみつけました。
-----------------------------------------------------------------------------
継承の目的は、あるクラスで実装したメソッドなどの機能を利用して、
さらに実装を追加する差分コーディングです。
一つのクラスから複数のサブクラスを作ることも良くあります。
このような時、それらのサブクラス型オブジェクトの参照を代入できる変数として、
スーパークラス型変数を使うことがしばしばあります。
-----------------------------------------------------------------------------
サブクラス型オブジェクトの参照を代入できる変数として、
スーパークラス型変数を使うことがある、と
いうのはどういった場合に使うのでしょうか。
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
例えば、そういうクラス達を配列に入れることを考えると、
サブクラスの配列を作ると、それには、サブクラスのオブジェクトしか入れられませんよね。
そういう、継承関係にあるようなクラス群を同じような操作で扱いたい時には、スーパークラスの配列にしておけば、色々なサブクラスを同じ配列に入れることができるし、共通部分の操作は、同じような操作が適用できます。
そういうことは、メソッドとして共通の操作をしたい場合も、仮引数としてスーパークラスで受けるようなメソッドにしておけば、そうした継承関係にあるクラスを同一のメソッドで処理することができます。
No.3
- 回答日時:
特に難しいことではなく、
「サブクラス型オブジェクトの参照を代入できる変数として、スーパークラス型変数を使うことがある」の単純なプログラムとして、
List list = new ArrayList();
のようなものがあります。
Listがスーパークラス(ここではインターフェイス)でArrayListがサブクラス(ここでは実装クラス)です。
それよりも、「継承の目的は、あるクラスで実装したメソッドなどの機能を利用して、さらに実装を追加する差分コーディングです」というのは昔の話で、現在ではそういった差分コーディングのための継承の利用は「悪いプログラミング」とされていることを覚えておいたほうがいいでしょう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java インスタンス ダウンキャストについて以下の解釈であっているか教えて欲しいです。 サブクラスをスーパー 1 2022/03/27 18:53
- 工学 コンデンサのサブクラスX1、X2について 1 2022/11/13 12:36
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Java 複数TBLのオブジェクトを1つの変数(オブジェクト)でまとめて管理したい 1 2022/12/17 00:12
- その他(プログラミング・Web制作) Pythonのオブジェクトの関数について 2 2023/05/11 19:15
- Java java 飾子を付けること(public static・・・) ・コンソールへの出力処理はmainメ 2 2022/06/16 19:34
- その他(プログラミング・Web制作) このプログラミングをどう組みますか? Googlecolabでやってるんですが、出来る方お願いします 1 2022/07/13 10:52
- その他(プログラミング・Web制作) どういうプログラムで組みますか?google colabでやってるんですけど、出来る方お願いします。 1 2022/07/17 18:41
- Java オブジェクト指向プログラミングの実践本を紹介してください 3 2022/09/19 04:56
- その他(プログラミング・Web制作) pythonのmap、結果の利用は1度だけ? 5 2022/06/11 12:33
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C# 「データが失なわれる可能性...
-
interface,extend,implementの...
-
Javaで下線
-
javaのクラスの分け方について...
-
「継承されたメソッドの可視性...
-
Javaでタスクシステムを作るの...
-
(vba)他のアプリケーションの右...
-
C++ヘッダの肥大化
-
compareToにおける「自然順序付...
-
オブジェクト指向 ボールの衝突
-
publicフィールドの使いどき
-
interfaceとabstract
-
インターフェースとは
-
C言語のプログラムをJavaに
-
インターフェースの利点は?
-
スタックで成績表を作るプログ...
-
抽象クラスとインタフェースの...
-
抽象クラスのエラーが出ます
-
単体テストのテストケースにて...
-
markメソッドについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
interface,extend,implementの...
-
「ラッパークラス」の存在意義...
-
(vba)他のアプリケーションの右...
-
抽象クラスをJUNITでテストする...
-
オーバーライドとラッパーの違い
-
C# 「データが失なわれる可能性...
-
【C#】クラスのコンストラクタ...
-
JTextFieldの入力制限
-
c++でのヘッダーファイルの循環...
-
vb.net 自作プロパティの削除に...
-
「継承されたメソッドの可視性...
-
ASP.NETでの共通コードの書き方...
-
Javaのインスタンス化の構文の...
-
Javaで下線
-
メソッドの引数にクラス名を渡す
-
VB DLLプロジェクトについて
-
C#からDLLを呼びたいのですが・...
-
インターフェース型の使い方が...
-
委譲って何ですか?
-
C# 継承の問題で programに示さ...
おすすめ情報