5.7 性的変数と静的メソッド

独習Java
・ 6.1
サブクラス
・ 6.2
継承と変数
・ 6.3
メソッドのオーバーライド
11月28日
小笠原 一恵
継承
:
あるクラスの状態と動作を別の
クラスに分化する機能のこと
・ クラスが継承できるのは1つ
のスーパークラスだけ
A
B
D
C
E
・ サブクラスを複数持つことが
できる
・ スパークラスはそのクラスの
オブジェクトまたはそれから
派生した任意のオブジェクト
を参照できる
6.1 サブクラス
クラスの継承
class clsName2 extends
clsName1{
//クラスの本体
}
( clsName2はclsName1のサブクラス,clsName1はclsName2のスパークラス)
変数の宣言
clsName varName;
6.2 継承と変数
クラスにはそのスーパークラスに定義され
た状態と動作が継承される
サブクラス内の静的変数またはインスタンス変
数がスーパークラスの変数と同じ名前の場合、
スーパークラスの変数は隠れる
隠された変数の参照 : super.varName
6.3 メソッドのオーバーライド
クラスで宣言したメソッドと同じシグネチャを持つメソッ
ドがそのスーパークラスで宣言された場合、メソッドは
オーバーライドされる
スーパークラスのメソッドはサブ
クラスオブジェクトから隠される
シグネチャ : メソッド名とそのパラメータのデータ型のリストを合わせたもの
メソッドのオーバーライド
class a {
出力結果
void hello() {
System.out.println(“Hello from a”)
Hello from b
}
}
class b extends a {
void hello() {
System.out.println(“Hello from b”)
}
変数objから参照されるオブ
ジェクトがbクラスのオブジェ
クトであるから
}
class MethodOverriding{
public static void main(String args[]){
b obj = new b();
obj.hello();
}
}
サブクラスのhello()がスー
パークラスのhello()メソッド
をオーバーライドしている