current_person 2015-10-11 01:51 采纳率: 100%
浏览 1665
已采纳

网易类的初始化的笔试题

public class Father {

public static String desc = "Father";
static {
    System.out.println(desc);
}
Father(){
    System.out.println("Father Constructor");
}
String str = fun();
public String fun(){
    System.out.println("Father not static");
    return "Father not static";
}

}



public class Child extends Father{


    public static String desc = "Child";
    static {
        System.out.println(desc);
    }
    Child(){
        System.out.println("Child Constructor");
    }
    String str = fun();
    public String fun(){
        System.out.println("Child not static");
        return "Child not static";
    }

    public static void main(String[] args) {
        Child c = new Child();
    }
}

请问输出是什么,为什么,
我测试的输出:
Father
Child
Child not static
Father Constructor
Child not static
Child Constructor
关于Father static为什么不出来我不懂,求帮助

  • 写回答

1条回答 默认 最新

  • IceAeterna 2015-10-11 02:10
    关注

    初始化顺序为:
    类初始化:按出现顺序初始化静态类成员、static块
    类实例初始化:按出现顺序初始化实例成员初始化和按规则调用构造方法
    父类实例初始化过程中,由于实例化的是子类Child,父类的str对象在初始化过程中调用的fun()实际上是子类的重写方法,而并非父类声明的fun(),如果把父类的fun和子类的fun改为不同的简单名称,比如父类改为fun2(),那么就会输出Father not static而非Child not static

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化
  • ¥15 Mirare PLUS 进行密钥认证?(详解)
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥20 想用ollama做一个自己的AI数据库
  • ¥15 关于qualoth编辑及缝合服装领子的问题解决方案探寻
  • ¥15 请问怎么才能复现这样的图呀