Java父、子類成員變量和方法的調用關係

成員變量的調用和創建類時new後面的類型無關,和當前實力所屬的類型有關;

調用方法時,只與new後面的類型有關。

代碼:

<span style="font-size:14px;">public class Mastiff extends Dog {
	public String type="子類成員變量賦值";
	
	@Override
	public void fun1() {
		System.out.println("Mastiff fun1");
	}

	@Override
	public void fun2() {
		System.out.println("Mastiff fun2");
	}
	
	public static void  main(String[] args){
    	Mastiff mastiff = new Mastiff();
    	System.out.println(mastiff.type);
    	mastiff.fun1();
    	mastiff.fun2();
    	
    	Dog dog1 = new Mastiff();
    	System.out.println(dog1.type);
    	dog1.fun1();
    	dog1.fun2();
    	
    	Dog dog2 = (Dog)mastiff;
    	System.out.println(dog2.type);
    	dog2.fun1();
    	dog2.fun2();
    }
}  </span>
<span style="font-size:14px;">public abstract class Dog {
	public String type="父類成員變量賦值";
	
	public abstract void fun1();
	
	public void fun2() {
		System.out.println("Dog fun2");
	}
}</span>

執行結果:

子類成員變量賦值
Mastiff fun1
Mastiff fun2
父類成員變量賦值
Mastiff fun1
Mastiff fun2
父類成員變量賦值
Mastiff fun1
Mastiff fun2


發佈了26 篇原創文章 · 獲贊 3 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章