在代码中
创造了一个父类father的实例f
并为f的number属性赋值。
创造一个子类child的实例c
获得f的number属性
继承father类的show方法时本该显示c的number属性的地方显示了father类属性的初始值。
但若直接重写方法,C的number无异常。
想请教这个代码中的super.show()是否是我用错了
以下为主代码
import java.util.Scanner;
public class text {
public static void main(String[] args) {
father f=new father();
Scanner input=new Scanner(System.in);
System.out.println("输入number:");
int num=input.nextInt();
f.setNumber(num);
child c=new child(f);
c.showChild();
f.show();
}
}
以下为father类代码
public class father {
private int number = 30;
public void setNumber(int input) {
this.number = input;
}
public int getNumber(father a) {
return a.number; }
public void show() {
System.out.println("这是father对象的number:" + number);
}
}
以下为child类代码
public class child extends father {
private int number;
public child() {
}
public child(father f) {
System.out.println(f.getNumber(f));
this.number = f.getNumber(f);
}
public void setNumber(int input) { this.number=input; } public int
getNumber(child c) { return c.number; }
public void showChild() {
super.show();
System.out.println("这是child对象的number:" + number);
}
}
以下为运行结果:
输入number:
11
11
这是father对象的number:30 //30为father类的初始值
这是child对象的number:11
这是father对象的number:11
以下为预想中的运行结果
输入number:
11
11
这是father对象的number:11
这是child对象的number:11
这是father对象的number:11