スーパークラスとサブクラス

  • すでに存在するクラスに,新しいメソッドやフィールドを追加したり,メソッドを上書きしたりして,新しいクラスを作ることができる.
  • サブクラス:クラスを拡張して出来た新子クラスをもとのクラスのサブクラス(subclass)と呼ぶ.
  • スーパークラス:もとのクラスを,拡張して出来たクラスのスーパークラス(superclass)と呼ぶ.

extends

長方形に名前をつけた新しいクラスを宣言する.

class NameRectangle extends Rectangle{
	...
}
  • RectangleのサブクラスであるNameRectangleを宣言する.
  • NameRectangleのスーパークラスは,Rectangleです.
  • Rectangleは,NameRectangleの拡張クラスです.
class ClassB extends ClassA{
	...
}
class.png

スーパークラスClassAとサブクラスClassB

継承

  • サブクラスはスーパークラスのメソッドとフィールドを受け継ぐ
  • コンストラクタは継承されない
  • スーパークラスのコンストラクタの明示的な呼び出しには super()を使う.

IS-A関係

  • サブクラスはスーパークラスの一種である.をオブジェクト指向の用語で「IS-A関係」という.
  • 犬は哺乳類の一種である.
  • NameRectangleは,Rectangleの一種である.

HAS-A関係

  • インスタンスをフィールド型として持つとそのインスタンスを自分のものとして扱える.このような関係を「HAS-A関係」という.

オーバーライド

  • サブクラスでスーパークラスから継承したメソッドやフィールドに同じ名前のメソッドやフィールドを宣言すると変更することができる.これをオーバーライドと呼ぶ.

継承とアクセス制御

  • スーパークラスでprivateと書かれたフィールドやメソッドは,サブクラスに継承されない.
  • 他のクラスから利用させたくないフィールドやメソッドに対して利用する.
  • そのクラス内部だけで使うため.
  • このように名前の使用を許可したり,禁止したりする機構をアクセス制御と呼ぶ.→Text第17章を参照

抽象クラス

  • メソッドの名前と引数の型だけが決まっていて,実装がないメソッドを抽象メソッド(abstractメソッド)と呼び,そのクラスを抽象クラス(abstractクラス)と呼ぶ.
  • 抽象クラスはそのサブクラスを宣言して抽象メソッドをオーバーライドする必要がある.


添付ファイル: fileclass.png 126件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2013-06-20 (木) 14:45:23 (2364d)