例如,一个房地产建筑商正在建造一个带有许多公寓的公寓。除卧室外,公寓中的所有房间都具有相同的设计。卧室设计留给拥有公寓的人,即;床 房间可以针对不同的公寓进行不同的设计。
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");
}
}
或者,我可以使用 aninterface
而不是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
类?