抽象クラスとは?
状態:-
閲覧数:1,623
投稿日:2013-04-23
更新日:2018-08-15
abstractクラス
抽象メソッドを1つ以上持つクラス
・継承して中身を実装しないと利用できないクラス(抽象クラスのオブジェクトを生成することは出来ない)
・クラスの中に1つ以上の抽象メソッド(abstractメソッド)を必ず含む
※抽象クラスを継承したサブクラスでは、抽象メソッドを必ず実装しなければいけない
抽象メソッド
概要
abstractメソッド
・中身が定義されていない不完全なメソッド
・継承したクラスで実装することを前提としたメソッド
「インターフェイス」と「抽象クラス」の相違点
1.普通のメソッド
・普通のメソッドも定義可能?
抽象クラス
・「抽象メソッド」と「抽象メソッドでない普通のメソッド」の両方を宣言することが可能
インタフェース
・「抽象メソッド」のみ宣言可能
2.多重継承
抽象クラス
・多重継承不可
※1つのクラスからしかサブクラスを作成できない
インタフェース
・インプリメントするインタフェースは複数インプリメント可能
抽象クラスが利用される場面
利用される場面
・継承して細分化・具体化するクラス群の共通処理を定義する場合に利用
抽象メソッドの活用
・「継承したクラスで実装することを前提とした」抽象メソッドを定義することで、共通処理の実装を保障したクラスを作成可能
(例えば、哺乳類クラスを継承して犬・猫・人クラスを作成する場合、「授乳する」と言ったメソッドは哺乳類クラスに持たせた方が楽)