例如,房地产开发商正在建造一栋有多个单元的公寓。除了卧室外,所有单元房间的设计都是相同的。卧室的设计留给未来的业主决定,即不同单元的卧室可以有不同的设计。
我可以通过下面的一个
现在问题是:为什么要选择使用接口(或)为什么要选择使用抽象类?
我可以通过下面的一个
抽象类
实现这一点:public abstract class Flat
{
//some properties
public void livingRoom(){
//some code
}
public void kitchen(){
//some code
}
public abstract void bedRoom();
}
}
一个实现类应该像下面这样:
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");
}
}
现在问题是:为什么要选择使用接口(或)为什么要选择使用抽象类?