我们可以使用扩展代替工具来使用接口

时间:2013-10-09 14:28:27

标签: java class interface

我正在尝试使用extends关键字代替工具来使用接口,这在java中是可能的。

Interface myinterface
{
     //methods
}

public class myclass extends myinterface
{
    //methods
}

告诉我这两个词的目的是扩展和实现。为什么class不使用implement关键字从其他类继承类

7 个答案:

答案 0 :(得分:2)

接口不能扩展,而是实现。 接口只能包含常量,方法签名和嵌套类型。也就是说,它们只代表模型的抽象,或者只包含常量列表。

接口支持继承。例如,你可以:

public interface InterfaceA extends InterfaceB

如果你真的想从类扩展并有一些抽象方法,你可以使用抽象类:

public abstract class AbstractA {
  public abstract void myAbstractMethod;
}

public class A extends AbstractA {
  @Override 
  public abstract void myAbstractMethod {
       // your code
  }
}

答案 1 :(得分:1)

类不能扩展 Interface。他们只能实施他们。只有Interface可以扩展另一个Interface,就像只有Class可以扩展另一个Class一样。

  

告诉我这两个词的目的是扩展和实现。

当一个类extends它继承了属性和行为,即它所扩展的类中的方法。类只能从一个类扩展,因为Java中不支持多重继承

当一个类implements时,它提供了行为,即在它实现的Interface中定义为存根(只是没有代码的签名)的方法的实现。但是,类可以实现多个接口。

Interface扩展另一个Interface时,只需将更多方法添加到实现它需要为其提供实现的Class方法列表中。

答案 2 :(得分:1)

不,你必须使用implements接口。

如果您绝对需要使用扩展,则可以创建abstract class

答案 3 :(得分:1)

想想这两个词以及他们告诉你的内容。

实施 - 意味着实现某些目的。接口定期定义为类必须具有或实现的方法的契约。基本上你是在使合同生效。

延伸 - 意味着延长时间。通过扩展类,您基本上可以通过包括扩展类的所有方法来延长它。

根据定义,两个不同的词语为您提供代码中的两种不同的能力。

答案 4 :(得分:0)

正如其他人一样,最简洁的@Stefan Beike说:不,当你的意思是extends时,你不能使用implements。如果需要,您可以做的是添加一个中间抽象类,implements您的界面,然后extend该类。有时,这是通过接口方法的空实现完成的,然后您只需要覆盖子类中感兴趣的方法。但如果您只想使用extends,那么它可以是一个纯粹的抽象类,否则将会调用implements

答案 5 :(得分:0)

Extends - 由类用于扩展另一个类的某些功能,以便可以重用相同的方法或字段。基本示例可以是:

 class Animal
{
  private String name;
   public void setName(String name)
   {
      this.name = name;
   }
   public int getLegs()
   {
      return 2;
   }
}

class Elephant extends Animal
{
   public int getLegs()
   {  
      return 4;
   }
}

现在,setter被重用并且extends不会强制它被覆盖,但是根据要求,任何方法都可以被覆盖,在我们的例子中是getter。

实现 - 类可以实现接口。这有助于实现抽象。接口中的任何方法都需要由实现接口的任何类实现。它是强制性的,除非类是抽象的,否则任何其他具体类都应该实现未实现的方法。

因此,类可以扩展其他类以重用功能,并且类可以实现接口来强制执行类必须自己提供的某些功能。

现在,为什么接口扩展接口,我也不确定,可能是因为子接口将扩展超级接口的方法,它将在实现子接口的类的超级接口中强制执行方法。由于超级接口不强制在子接口上实现,因此无法使用实现。

我希望我很清楚。

答案 6 :(得分:0)

class扩展class(正确)

class扩展接口(不正确)=>类实现接口(正确)

接口扩展了接口(正确)

接口扩展类(错误)(永远不可能)