理解abstract和interface

abstract, interface

最近開發IBM新企網,於網路上找到了很棒的一篇文章

http://www.ibm.com/developerworks/cn/java/l-javainterface-abstract/

其中範例用alarmDoor來解析,並簡單的以Object 的"本質"來區分應該如何選擇使用abstract or interface

因為alarmDoor本質上還是door,所以extends Door,再加入alarm的行為(interface Alarm)


abstract class Door {
	abstract void open();
	abstract void close();
}
//interface只能有static final成員(通常不定義成員),且方法只能是abstract
interface Alarm {
	void alarm();
}
class AlarmDoor extends Door implements Alarm {
	void open() { … };
	void close() { … };
   	void alarm() { … };
}

淺顯易懂呀!!!!