Java基礎③
継承
- スーパークラスからサブクラスを作る。
- クラスの宣言時にextens <スーパークラス名>
- 1つのサブクラスで継承できるのは1つ。
- スーパークラスを指定しないクラスはObjectクラスのサブクラスとなる。
- サブクラスはスーパークラスのメンバを継承。
- サブクラスのコンストラクタの先頭でスーパークラスのデフォルトコンストラクタが呼ばれる。
- super()を使うと、引数の数で呼び出すコンストラクタを指定できる。
- スーパークラスのprivateメンバには、サブクラスからアクセスできない。
- protectedメンバなら、サブクラスからアクセスできる。
- サブクラスのオブジェクトはスーパークラスの変数に入れられる。
- その場合、オブジェクト自身のメソッドが呼び出される。
オーバーライド
スーパークラス
- サブクラスからスーパークラスの同じ名前のメンバにアクセスする場合super.をつける。
final
equals()メソッド
- 2つの変数がさしているオブジェクトが同じ場合trueを返す。
- equals()は、Objectクラスのメソッド。
- JavaのクラスはすべてObjectクラスのメンバを継承している。
- Stringクラスのequals()メソッドは2つのオブジェクトがあらわしている文字列の内容が同じかどうか調べる。
getClass()メソッド
- オブジェクトが属するクラスの情報をClassクラスのオブジェクトで返す。
抽象クラス
- abstract class <クラス名>と宣言する。
- 抽象クラスはオブジェクトを作れない。
- 処理内容が定義されていないメソッドを持つ。(抽象メソッド)
- 抽象メソッドにも、abstractをつける。
- 抽象クラスを継承したサブクラスでは、抽象メソッドを定義してオーバーライドする必要がある。
instanceof演算子
- オブジェクトのクラスを調べることができる。
インターフェイス
- interface <名前(able)>
- 抽象メソッドを持つ。
- コンストラクタは持たない。
- インターフェイスのメンバには修飾子をつけない。
- フィールドにはpublic、static、final、メソッドにはabstractがついていると同じになる。
インターフェイスを実装する
多重継承
- クラスを使った多重継承はできないが、インターフェイスは2つ以上実装できる。