【问题标题】:When to use abstract classes and when to use interfaces [duplicate]何时使用抽象类以及何时使用接口 [重复]
【发布时间】:2012-03-26 18:02:10
【问题描述】:

可能重复:
When to use interfaces or abstract classes? When to use both?

考虑一下

public abstract class Flat
{
    //some properties


    public void livingRoom(){
       //some code
    }

    public void kitchen(){
       //some code
    }

    public abstract void bedRoom();

}
An implementation class would be as follows:

public class Flat101 extends Flat
{
        public void bedRoom() {
            System.out.println("This flat has a customized bedroom");
       }        

}

或者,我可以使用接口而不是抽象类来实现相同的目的,如下所示:

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");
       }
}

现在的问题是:对于这个设置为什么应该选择使用接口(或)为什么我应该选择使用抽象类?

【问题讨论】:

    标签: java


    【解决方案1】:

    一般而言,当您想要放置可在实现之间重用的通用逻辑的地方时,请使用abstract 类。否则,请使用Interface

    然后有一些异常,往往与设计模式密切相关。但请保持简单。

    【讨论】:

      猜你喜欢
      • 2014-06-16
      • 2011-06-25
      • 2011-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-25
      • 2010-11-16
      • 2015-02-15
      相关资源
      最近更新 更多