• 締切済み

abstractなClassについて

(1)abstractなClassはabstractなmethodを持っていてもnewすることができる。 (2)(1)のabstractなClassを継承したClassは、(1)のabstractなmethodを実装しないとnewすることができない。 この認識は正しいでしょうか?

みんなの回答

  • inu2
  • ベストアンサー率33% (1229/3720)
回答No.2

1 無理。できません あくまでも抽象クラスです 2 正解です。 コレをするためのabstractです たとえば、SEの人がスケルトンなabstractを作りPGさんがそれを継承した実装クラスを作る や、各モデルクラスを作る際に、メソッド名が切られていることにより命名規則やルールを無視できないようにする などなどの意味があります。

gogo724275
質問者

補足

>>1と>>2の方、ありがとうございます。 お礼をまとめてしまって申し訳ありません。 つまりabstractは実装されている(中身のある)methodを持ちつつも、 interfaceの様に継承したClassで実装されなければいけないmethodを定義できるということですね。 大変参考になりました。

  • wp_
  • ベストアンサー率54% (132/242)
回答No.1

試してみると良いのですよ。 (1)Cannot instance abstract classのfatal errorが出ます。 abstract宣言されたクラスそのものはnew出来ません。 ::を使って関数を呼ぶことは一応出来ます。 (2)そのとおり。

関連するQ&A