【发布时间】:2012-08-20 14:26:52
【问题描述】:
例如,一位房地产建筑商正在建造一套带有许多公寓的公寓。除卧室外,公寓中的所有房间都具有相同的设计。卧室设计留给拥有公寓的人,即;床 房间可以针对不同的公寓进行不同的设计。
我可以通过如下abstract 类来实现这一点:
public abstract class Flat
{
//some properties
public void livingRoom(){
//some code
}
public void kitchen(){
//some code
}
public abstract void bedRoom();
}
}
implementation 类如下:
public class Flat101 extends Flat
{
public void bedRoom() {
System.out.println("This flat has a customized bedroom");
}
}
或者,我可以使用interface 而不是abstract 类来实现相同的目的,如下所示:
class Flat
{
public void livingRoom(){
System.out.println("This flat has a living room");
}
public void kitchen(){
System.out.println("This flat has a kitchen");
}
}
interface BedRoomInterface
{
public abstract void bedRoom();
}
public class Flat101 extends Flat implements BedRoomInterface
{
public void bedRoom() {
System.out.println("This flat has a customized bedroom");
}
}
现在的问题是:为此为什么要选择使用interface(或)我为什么要选择使用abstract 类?
【问题讨论】:
-
你自己回答了:接口只定义方法名,如果你还需要实现某些方法,你使用抽象类。
标签: java oop interface abstract-class