恒生电子笔试复盘

恒生回来的新问题→SQL[闭嘴] 
1.构造方法 模模糊糊记住然后蒙对了
2.C语言指针的题目蒙的  
3.编程题两道都很简单 
4.栈数据结构应用的几种场景 (逆序/程序装载/递归/链表的删除?) 选了13 还没找到答案 
5.class A {} class B extends A{} 问B()的问题 回来写了下代码发现做错了

5和1竟然是同一个方法,构造方法与继承的问题

public class NO_Hengsheng_1 {
        NO_Hengsheng_1(){
            System.out.println("1");
        }
}
public class NO_Hengsheng_2 extends NO_Hengsheng_1 {
    NO_Hengsheng_2(){
        System.out.println("2");
    }
}
public class NO_Hengsheng_3 extends NO_Hengsheng_2 {
    NO_Hengsheng_3(){
        System.out.println("3");
    }
}
public class NO_Hengsheng {
    public static void main(String[] args) {
        new NO_Hengsheng_3();
    }
}

继承问题,子类实例化生成对象时,把这个类加载到JVM上,会先生成类的实例,但是new关键字有一个特殊的性质就是会先调用类的无参构造方法,如果这个类继承了父类,则子类实例化时,会先调用父类的无参构造方法,因此在这儿B b = new B()的过程中,会先调用A类的无参构造方法

首先,方法是没有继承一说的,只有覆写或者重载,类和类之间才能叫继承。
其次,你所出现的效果,是类的一个初始化的顺序问题,子类在初始化的时候会先调用父类的构造方法,所以打出了你的那句话。
最后,子类可以使用super()显示调用父构造器,没有重写的必要。

猜你喜欢

转载自www.cnblogs.com/samanian/p/11768062.html