Java中性子クラス呼び出し親メソッド
1033 ワード
参考記事:トランスポートゲート
あるクラスが別のクラスに継承され、サブクラスに親のメソッドがない場合.サブクラスのオブジェクトでメソッドを呼び出すと、まずサブクラスで検索され、サブクラスにメソッドがない場合は親クラスで検索されます.メソッドが親クラスでのみ定義されている場合、メソッドが呼び出されると、親クラスのプロパティが使用されます.
このメソッドで他のメソッドが呼び出された場合は、前の順序でサブクラス(サブクラスのプロパティを使用)を検索し、親クラス(親のプロパティを使用)を検索します.
出力結果:
あるクラスが別のクラスに継承され、サブクラスに親のメソッドがない場合.サブクラスのオブジェクトでメソッドを呼び出すと、まずサブクラスで検索され、サブクラスにメソッドがない場合は親クラスで検索されます.メソッドが親クラスでのみ定義されている場合、メソッドが呼び出されると、親クラスのプロパティが使用されます.
このメソッドで他のメソッドが呼び出された場合は、前の順序でサブクラス(サブクラスのプロパティを使用)を検索し、親クラス(親のプロパティを使用)を検索します.
package Temp;
class A {
int x = 6;
private int y = 2;
public A(int a) {
x = a;
}
int getz() {
int z;
z = x / y;
return z;
}
void show() {
System.out.println("x=" + x);
System.out.println("y=" + y);
System.out.println("z=" + getz());
}
}
class B extends A {
int x = 3, y = 5, z;
public B(int a) {
super(a);
}
int getz() {
z = x + y;
return z;
}
}
public class Temp {
public static void main(String[] args) {
A num1 = new A(10);
B num2 = new B(9);
num1.show();
num2.show();
}
}
出力結果:
x=10
y=2
z=5
x=9
y=2
z=8