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

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

报告相同问题?

悬赏问题

  • ¥50 易语言把MYSQL数据库中的数据添加至组合框
  • ¥20 求数据集和代码#有偿答复
  • ¥15 关于下拉菜单选项关联的问题
  • ¥20 java-OJ-健康体检
  • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况