我们是否必须在实现Java接口的类中实现所有方法?

是的,必须在实现接口的类中实现所有方法,直到并且除非该类被声明为抽象类。

只有两个选择-

  • 实现接口定义的每个方法。

  • 将该类声明为抽象类,结果迫使您在创建任何对象之前先对该类进行子类化(并实现缺少的方法)。

类不需要在接口中实现所有方法的唯一情况是,当其继承树中的任何类已经提供了具体的(即非抽象的)方法实现时,子类就没有义务重新实现这些方法。子类可能根本不实现接口,而只是方法签名被匹配。

示例

interface MyInterface {

   void m() throws NullPointerException;

}

class SuperClass {

   //SuperClass类未实现MyInterface接口

   public void m() {

      System.out.println("Inside SuperClass m()");

   }

}

class SubClass extends SuperClass implements MyInterface {

}

public class Program {

   public static void main(String args[]) {

      SubClass s = new SubClass();

      s.m();

   }

}

输出结果

Inside SuperClass m()

上面的代码显示了一个具体的类SubClass,该类声明其实现了接口MyInterface,但未实现m()该接口的方法。该代码是合法的,因为它是父类的SuperClass实现m()与接口中的方法同名的方法。

以上是 我们是否必须在实现Java接口的类中实现所有方法? 的全部内容, 来源链接: utcz.com/z/331222.html

回到顶部