两个简单的问题!!!!!
[code]package hehe_1;public class MethodOverride {
public static void main(String[] args) {
SubClass s = new SubClass();
s.fun();
}
}
class SuperClass {
int i = 1;
public void fun() {
System.out.println("super");
System.out.println("父类的i=" + i);
}
}
class SubClass extends SuperClass {
int i = 2;
public void fun()
{
System.out.println("Sub");
System.out.println("子类的i=" + i);
super.fun();
}
}[/code]
问题一:为什么先执行子类,而不是父类呢?
问题二:子类的super有什么作用?
然后再调用了父类的方法吧
因为Main()方法实列化的是子类,所以按顺序也是先执行子类的方法 LZ,在你的主类里面,你建立了一个子类的实例s,然后调用了s的方法fun。那么看子类的fun
方法,先是打印出Sub和子类的i=,然后通过super再调用父类的fun方法。所以结果看到的是先子类再父类。super可以看成父类。
谢谢大家!
super: 它引用当前对象的直接父类中的成员(用来访问直接父类中被隐藏的父类中成员数据或函数,基类与派生类中有相同成员定义时) 回答一:子类重写父类run()方法,所以执行子类方法;重写发生在子类拥有特定的行为,不继承父类的行为;回答二:super()方法是让子类使用父类的构造方法; 各位前面说了按顺序执行,如果把super()放在前面就会先执行父类了! super在什么情况下才能被执行? 可能是子类对父类FUN方法覆盖了 多态问题
页:
[1]
