java 中子类和父类的相关问题

来源:百度知道 编辑:UC知道 时间:2024/06/19 20:13:21
class FatherClass{
public int value;
public void f(){
value=100;
System.out.println("FatherClass.value="+value);
}
}
class ChildClass extends FatherClass{
public int value;
public void f(){
super.f();
value=200;
System.out.println("ChildClass value="+value);
System.out.println(value);
System.out.println(super.value);
}
}
public class TestInherit {
public static void main(String[] args) {
ChildClass cc=new ChildClass();
cc.f();
}

}
请问最后一句cc.f()调用的是子类中的f(),还是父类中的f()?
为什么调用的是子类或父类中的f()?
请各位java高手帮帮忙,谢谢啦!

你仔细看一下代码

ChildClass cc = new ChildClass();
cc.f();

这是调用ChildClass的f方法

而 super.f(); 是调用父类的f方法

super.value 是调用父类的value

super是调用父类的方法或变量 记住就行了

f(); 是一个方法,
子类可以继承父类..父类不能继承子类..

调用的是子类的方法。
因为子类重写了父类的方法

先调用子类的f();但你的子类里f()里又调用父类的f();
子类如果重新定义覆盖了父类的方法,会执行子类的方法。

调用子类方法

子类中重新定义了value的值,不是父类中的那一个,如果注视了public int value,就都是200了。
class ChildClass extends FatherClass{
// public int value;
public void f(){
super.f();
value=200;
System.out.println("ChildClass value="+value);
System.out.println(value);
System.out.println(super.value);
}
}