当前位置: 首页 > 编程笔记 >

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

漆雕宏浚
2023-03-14
本文向大家介绍我们是否必须在实现Java接口的类中实现所有方法?,包括了我们是否必须在实现Java接口的类中实现所有方法?的使用技巧和注意事项,需要的朋友参考一下

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

只有两个选择-

    list-paddingleft-2">
  • 实现接口定义的每个方法。

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

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

示例

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()与接口中的方法同名的方法。

 类似资料:
  • 下面是一个简单的例子,展示了我的问题: 在中,我提供了方法和的实现,这是来自的唯一抽象方法。但是,当我编译时,我仍然会遇到以下错误: 类型MyWork必须实现继承的抽象方法AbstractCollection.size() 或者 我的任务。java:3:错误:MyTask不是抽象的,并且不重写AbstractList中的抽象方法get(int) (取决于编译器)。当然,我使用的是java 8。 所

  • 我正在开发一个插件,它将创建一个实现接口类。接口可能有继承的方法。我还希望在创建类时实现所有的方法,包括继承的方法,而不是在创建类之后,然后使用eclipse quick Fix--添加未实现的方法。是否有任何方法可以获得所有方法的列表,包括接口的继承方法?

  • 问题内容: 我有一个对象。我想确定对象表示的类型是否实现特定的接口。我想知道如何实现? 我有以下代码。基本上,它所做的是获取指定包中所有类的数组。然后,我想遍历数组并将添加实现接口的Class对象添加到我的地图。问题是将一个对象作为参数。我无法实例化接口。所以我对此感到茫然。有任何想法吗? 问题答案: 您应该使用:

  • 我有一个对象。我想确定对象表示的类型是否实现了特定的接口。我想知道这是如何实现的? 我有以下代码。基本上,它所做的是获取指定包中所有类的数组。然后,我想遍历数组并将实现接口的类对象添加到映射中。问题在于将对象作为参数。我无法实例化接口。所以我有点不知所措。有什么想法吗?

  • 我在TypeScript中使用一个接口来定义一个函数,该函数仅在扩展基类的一些类上可用。这是我到目前为止的代码的简化版本: 现在,问题是我会添加更多的“行走”动物,这样移动动物的功能就会变得太大而无法控制。我想做的事情是这样的: 但是,“implements”检查不起作用,在使用接口时,我找不到与“instanceof”等效的。在Java中,“instanceof”的使用似乎可以在这里使用,但Ty

  • 问题内容: 在C#中,如果有两个具有相同方法的基本接口(例如F()),则可以使用显式实现来执行不同的impl。对于F()。这使您可以不同地对待与当前视图相对应的对象:作为IMyInterface1或IMyInterface2。这在Java中可行吗? 问题答案: 不,没有像Java中C#的显式接口实现那样的东西。 从好的方面来说,Java具有协变量返回类型,因此,如果您想提供比接口指定的类型更强的实