【Java關鍵字】super對比this

super(調用父類)

super主要是調用父類

創建測試文件

ThisAndSuper.class

package test;
public class ThisAndSuper {
	public static void main(String[] args) {
		City c = new City();
		c.value();
	}
}

Country.class

package test;
class Country {
    String name;
    void value() {
       name = "China";
    }
}

City.class

package test;
class City extends Country {
	String name;
	void value() {
		name = "GuangZhou";
		super.value(); // 調用父類的方法
		System.out.println(this.name);
		System.out.println(super.name);
	}
}

調試註解(執行步驟)

在這裏插入圖片描述

  1. 進入class City,賦值name = “GuangZhou”;
  2. 運行至super.value(); 調用父類的方法,賦值name = “China”;
  3. 此時,City實例中含兩個name。

執行結果

GuangZhou
China

this(調用當前)

this主要是調用當前類

創建測試文件

package test;
public class ThisAndSuper {
	public static void main(String[] args) {
		Person Harry = new Person();
		System.out.println("Harry's age is " + Harry.GetAge(12));
	}
}

package test;
public  class Person {
	private int age = 10;
	public Person() {
		System.out.println("初始化年齡:" + age);
	}
	public int GetAge(int age) {
		this.age = age;
		return this.age;
	}
}

調試註解

Person Harry = new Person();//初始化Person時,執行System.out.println("初始化年齡:" + age);輸出age值爲10
System.out.println("Harry's age is " + Harry.GetAge(12));//傳入參數12,賦值給age,輸出age=12

執行結果

初始化年齡:10
Harry's age is 12
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章