首页 > 试题广场 >

下面 Java 代码的运行结果为() class Paren

[单选题]
下面 Java 代码的运行结果为()
class Parent {
    public String name = "Parent";
    public Parent() {
        sayName();
    }
    public void sayName() {
        System.out.println("say hi in parent : " + name);
    }
}

class Son extends Parent {
    public String name = "Son";
    public Son() {
        sayName();
    }
    public void sayName() {
        System.out.println("say hi in Son : " + name);
    }
}

public class Test {

    public static void main(String[] args) {
        new Son();
    }

}
  • say hi in parent : Parent
  • say hi in son : Son
  • say hi in parent : Parent
    say hi in son : Son
  • say hi in son : null
    say hi in son : Son
因为这里子类重写了父类中的方法 在子类实例化的时候 先执行父类的构造器  父类中的构造器执行sayName()方法 但是这个方法 子类进行重写了 所以以真实的类型进行决定 是执行父类中的方法还是执行子类中的方法 ,这里很明显  是执行子类中的方法 因为真实的对象类型是Son() 
发表于 2025-04-27 21:53:24 回复(0)