我在一個(gè)構(gòu)造方法中調(diào)用第二個(gè)自身的構(gòu)造方法,第二個(gè)自身構(gòu)造方法中又包含一個(gè)super(),那么想知道在第一個(gè)自身構(gòu)造方法中有沒(méi)有隱式的super(),父類對(duì)象應(yīng)該是優(yōu)先于子類對(duì)象在堆內(nèi)存里面出現(xiàn)的吧?最后究竟創(chuàng)建了幾個(gè)父類對(duì)象class Person { ?private String name; ?private String location; ?Person(String name) { ? ?this.name = name; ? ?location = "beijing"; ?} ?Person(String name,String location) { ? ?this.name = name; ? ?this.location = location; ?} ?public String info() { ? ?return ? ? ?"name: "+name+ ? ? ?" location: "+location; ?}}class Student extends Person { ? ?private String school; ? ?Student(String name, String school) { ? ? ? ?this(name,"beijing", school); ? ?} ? ?Student(String n,String l ,String school) { ? ? ? ?super(n,l); ? ? ? ?this.school = school; ? ?} ? ?public String info() { ? ? ? ?return super.info()+ ?" school: "+school; ? ?}}public class TestTeacher { ? ?public static void main(String[] args) { ? ?Student s1 = new Student("C","S1"); ? ? ? System.out.println(s1.info()); ? ?}}
1 回答

android開(kāi)發(fā)學(xué)習(xí)視頻
TA貢獻(xiàn)4條經(jīng)驗(yàn) 獲得超3個(gè)贊
Student(n, s)這個(gè)構(gòu)造器里顯式調(diào)用this(),抑制隱式super(),追溯到Student(n, l, s)里,沒(méi)有顯式this()調(diào)用,則隱式調(diào)用super(),即Person(n, l)
在以上三個(gè)構(gòu)造器里添加打印語(yǔ)句,結(jié)果如下:
Person(n, l) established
Student(n, l, s) established
Student(n, s) established
調(diào)用順序一目了然
添加回答
舉報(bào)
0/150
提交
取消