亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

關于一個構造方法中this()和super()的執行順序?

關于一個構造方法中this()和super()的執行順序?

千歲不倒翁 2018-03-05 09:36:33
我在一個構造方法中調用第二個自身的構造方法,第二個自身構造方法中又包含一個super(),那么想知道在第一個自身構造方法中有沒有隱式的super(),父類對象應該是優先于子類對象在堆內存里面出現的吧?最后究竟創建了幾個父類對象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開發學習視頻

TA貢獻4條經驗 獲得超3個贊

Student(n, s)這個構造器里顯式調用this(),抑制隱式super(),追溯到Student(n, l, s)里,沒有顯式this()調用,則隱式調用super(),即Person(n, l)
在以上三個構造器里添加打印語句,結果如下:
Person(n, l) established
Student(n, l, s) established
Student(n, s) established
調用順序一目了然

查看完整回答
反對 回復 2018-03-05
  • 1 回答
  • 0 關注
  • 1507 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號