抽象類與藉口的實際應用

<strong><span style="font-family:SimHei;font-size:14px;color:#ff0000;">在java中,使用抽象類就好像定義一個模板。</span></strong>
<strong><span style="font-family:SimHei;font-size:14px;color:#ff0000;">所以,永遠不要去繼承一個已經實現好的類。</span></strong>
<strong><span style="font-family:SimHei;font-size:14px;color:#ff0000;">使用向下轉型時,最好先用 instanceof 關鍵字進行驗證再使用,以免發生 ClassCastException 。</span></strong>


abstract class Person{
	private String name ;		// 定義name屬性
	private int age ;			// 定義age屬性
	public Person(String name,int age){
		this.name = name ;
		this.age = age ;
	}
	public String getName(){
		return this.name ;
	}
	public int getAge(){
		return this.age ;
	}
	public void say(){		// 人說話是一個具體的功能
		System.out.println(this.getContent()) ;	// 輸出內容
	}
	public abstract String getContent() ;	// 說話的內容由子類決定
};
class Student extends Person{
	private float score ;
	public Student(String name,int age,float score){
		super(name,age) ;	// 調用父類中的構造方法
		this.score = score ;
	}
	public String getContent(){
		return	"學生信息 --> 姓名:" + super.getName() + 
				";年齡:" + super.getAge() + 
				";成績:" + this.score ;
	}
};
class Worker extends Person{
	private float salary ;
	public Worker(String name,int age,float salary){
		super(name,age) ;	// 調用父類中的構造方法
		this.salary = salary ;
	}
	public String getContent(){
		return	"工人信息 --> 姓名:" + super.getName() + 
				";年齡:" + super.getAge() + 
				";工資:" + this.salary ;
	}
};
public class AbstractCaseDemo02{
	public static void main(String args[]){
		Person per1 = null ;	// 聲明Person對象
		Person per2 = null ;	// 聲明Person對象
		per1 = new Student("張三",20,99.0f) ;	// 學生是一個人
		per2 = new Worker("李四",30,3000.0f) ;	// 工人是一個人
		per1.say() ;	// 學生說學生的話
		per2.say() ;	// 工人說工人的話
	}
};


<span style="font-size:14px;color:#ff0000;">
</span>
<span style="font-size:18px;color:#ff0000;">在java中,藉口相當於一個標準</span>
<span style="font-size:18px;color:#ff0000;">繼續了接口就以爲着要把接口中標準的東西實現。</span>
<span style="font-size:18px;color:#ff0000;">關於接口:</span>
<span style="font-size:18px;color:#ff0000;">1.接口是一個特殊的類,只包含全局常量和抽象方法。</span>
<span style="font-size:18px;color:#ff0000;">2.一個類只能繼承一個類,卻能實現多個接口。</span>
<span style="font-size:18px;color:#ff0000;">3.一個接口可以繼承多個接口,以實現接口的多繼承.</span>
<span style="font-size:18px;color:#ff0000;">4.接口和抽象類一樣,必須依靠子類。</span>
<span style="font-size:18px;color:#ff0000;">5.一個抽象類可以實現多個接口,但接口不能繼承抽象類</span>
<span style="font-size:18px;color:#ff0000;">
</span>
<span style="font-size:18px;"></span><pre name="code" class="java">interface USB{		// 定義了USB接口
	public void start() ;	// USB設備開始工作
	public void stop() ;	// USB設備結束工作
}
class Computer{
	public static void plugin(USB usb){	// 電腦上可以插入USB設備
		usb.start() ;
		System.out.println("=========== USB 設備工作 ========") ;
		usb.stop() ;
	}
};
class Flash implements USB{
	public void start(){	// 覆寫方法
		System.out.println("U盤開始工作。") ;
	}
	public void stop(){		// 覆寫方法
		System.out.println("U盤停止工作。") ;
	}
};
class Print implements USB{
	public void start(){	// 覆寫方法
		System.out.println("打印機開始工作。") ;
	}
	public void stop(){		// 覆寫方法
		System.out.println("打印機停止工作。") ;
	}
};
public class InterfaceCaseDemo02{
	public static void main(String args[]){
		Computer.plugin(new Flash()) ;
		Computer.plugin(new Print()) ;
	}
};




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章