当前位置: 首页 > 知识库问答 >
问题:

如果扩展实现接口z的类y的java类x也实现接口z

公良鸿光
2023-03-14

我有个Z接口。它是由Y类实现的。我有另一个继承类Y的类x。因为y实现了类z指定的契约,所以x做同样的事情,因为它扩展了类y。因此,它是否也应该实现接口Z?

共有1个答案

浦毅
2023-03-14

不。如果接口是在当前类的层次结构中实现的,那么这就足够了。

最后,一个接口只是定义了一个类应该包含的几个方法。对于您的子类来说,这与如果它是顶级类中的“普通”方法没有什么不同。

示例:

public class Main {
    public static void main(String[] args) {
        new X().test();
        new Y().test();
    }
}

class X extends Y{

}

class Y implements Z{
    @Override
    public void test() {
        System.out.println("in Y");
    }
}

interface Z {
    public void test();
}
class X extends Y implements Z

但是,如果我们在X中实现这个方法,那么我们将对Y隐藏方法实现。

 类似资料:
  • 问题内容: 为了减少类的依赖性,我想将参数(使用泛型类)发送到扩展某些类并实现接口的构造函数,例如 可能吗? 此外,使用T类,我想使用T.getActivity()作为Context创建视图。 问题答案: T必须扩展Fragment并实现SomeInterface 在这种情况下,您可以声明以下内容: 这将需要扩展和实现类型的对象。 此外,使用T类,我想使用T.getActivity()作为Cont

  • 问题内容: 我有以下类和接口: 我想创建一个方法,其中参数需要为BasicObject类型并实现CodeObject。我尝试了以下代码,但不能保证clazz是实现CodeObject的类。 我想做这样的事情,但不能编译: 问题答案: 您的模式类必须扩展和扩展/实现(实际上是一个接口)。您可以使用方法签名的通配符定义中声明的多个类来执行此操作,如下所示: 请注意,如果您通过以下任何一种方式进行操作,

  • 我有以下类和接口: 我想创建一个方法,其中参数需要是BasicObject类型,并实现CodeObject。我尝试了以下代码,但它不能保证clazz是一个实现CodeObject的类。 我想做这样的事情,但它无法编译:

  • 我正在学习一本书,即“.NET域驱动的C#设计”。 问题基于如下类图所示的场景: 图:http://screencast.com/t/a9uuljvw0 现在,如果我用ICompanyRepository变量comrep调用Add()函数... 然后调用RepositoryBase类(它是CompanyRepository的父类)中的Add()函数。 我的问题是:在(抽象基)类“repositor

  • 但是现在,我希望这些接口实现也可用于扩展,例如。 我如何设置我的课程来实现这一点?(或者,反对这样做的固有缺陷或代码气味是什么?)

  • 问题内容: 前一段时间,我遇到了一段代码,该代码使用了一些标准Java功能来定位实现给定接口的类。我知道这些函数隐藏在某些非逻辑的位置,但是由于包名称暗含,它们可以用于其他类。那时我不需要它,所以我忘记了它,但是现在我需要了,而且似乎无法再次找到这些函数。在哪里可以找到这些功能? 编辑:我不是在寻找任何IDE函数或任何东西,而是可以在Java应用程序中执行的东西。 问题答案: 不久前,我整理了一个