抽象類別 可定義「一般函數」與「抽象函數」
抽象類別 不能用來建立物件
抽象函數 不定義其處理方式
子類別繼承而來的抽象函數 與改寫overriding 技術相同
針對子類別會使用到的條件,可以在父類別中定義抽象函數來使用

最後要注意的還有:

抽象函數 只能宣告為 公有public 或 保護protected,
因為子類別必須取用,所以不能宣告成 私有private!

package abstractDimo;

abstract class Father{ //抽象類別 在class前面加上abstract
	abstract void amethod();//建立一個無實作區塊的抽象方法
	
	public void bmethod() {//在抽象類別裡面一樣可以建立一般函數方法
		System.out.println("bmethod");
	}
}

class Son extends Father{//用擴充或繼承的方式 才能使用abstract抽象類別的方法
	void amethod() { //抽象方法需要用擴充的方式才能加以實作
		System.out.println("amethod");
	}
}


public class abstractDimo {

	public static void main(String[] args) {
		Father s = new Son();//宣告father的規則,son的實體去測試使用
		s.amethod(); //amethod是son繼承下來的
		s.bmethod(); //bmethod災抽象類別的一般函數method方法
	}

}

 抽象類別實作案例

package abstractDimo;

abstract class Father1{ //定義抽象類別
	protected String color;
	public void setcolor(String color){ //一般函數方法
		this.color=color;
	}
	public abstract void show(); //只定義函數名稱的 抽象函數
}
class Son1 extends Father1{ //子類別 去繼承Father抽象類別
	protected double raduis;
	protected Son1(double raduis) { //建構元
		this.raduis=raduis;
	}
	public void show() { //定義繼承來的抽象類別裡面 show() 的處理方式
		System.out.println("color="+color);
		System.out.println("area="+3.14*raduis*raduis);
	}
}

public class abstractDimo2 {

	public static void main(String[] args) {
		
		Son1 s=new Son1(2.0);//直接傳double值進去
		s.setcolor("red"); //呼叫父類別的steolor()
		s.show();//乎叫子類別所處理的show()

	}

}

Steven玄

謝謝您觀看本站內容!! 😅 西元93年台灣男,軟體前、後、資料庫工程師 和 多元收入實踐,程式設計、網站系統規劃、商業策略分析規劃、多元收入研究,目前在網站開發公司擔任工程師。

發佈留言