当前位置: 首页 > 面试题库 >

接口中的构造函数?

郜彬
2023-03-14
问题内容

我知道不可能在接口中定义构造函数。但是我想知道为什么,因为我认为这可能非常有用。

因此,您可以确定为该接口的每种实现定义了类中的某些字段。

例如,考虑以下消息类:

public class MyMessage {

   public MyMessage(String receiver) {
      this.receiver = receiver;
   }

   private String receiver;

   public void send() {
      //some implementation for sending the mssage to the receiver
   }
}

如果为该类定义一个接口,以便我可以有更多实现消息接口的类,则只能定义send方法,而不能定义构造函数。那么,如何确保此类的每个实现都确实有一个接收者集?如果我使用类似的方法,setReceiver(String receiver)则不能确定是否真的调用了该方法。在构造函数中,我可以确保这一点。


问题答案:

以您描述的一些内容为例:

“因此,您可以确定为该接口的每种实现定义了类中的某些字段。”

“如果为此类定义一个接口,以便我可以有更多实现消息接口的类,则只能定义send方法,而不能定义构造函数”

…这些要求正是抽象类的用途。



 类似资料:
  • 我从我正在使用的库中收到以下接口: 如何创建该类的实现?(我需要一个测试模拟)一个自然的实现,构造函数定义为:

  • 问题内容: 关于接口和类,这让我感到困扰。 我正在尝试通过名为IPAddressString的类对名为IPAddress的接口进行实施。Ipadress包含四个部分。 我正在编写一个名为mask的方法,该方法用给定的地址屏蔽当前地址。掩码操作是对地址的所有四个部分进行按位“与”操作。您可以通过我编写的名为getOc​​tet的方法来获得所有四个部分。(您可以在下面看到)。 好的,所以我需要掩盖我的

  • 问题内容: 在Java中,如果有接口: 然后实现是: 所以我的意思是,如果用户想用构造函数声明实例: 那不可能吗? 问题答案: 那不可能吗? 那就对了。你永远做不到 之后你必须选择一个 类 实现了接口(*) ,如: 为什么? 您可以将接口视为类的属性。比喻是形容词,例如“红色”。例如,创建一个红色的球()或一辆红色的汽车()是很有意义的,但是仅创建“红色”()没有任何意义(“红色代表 什么 ?”)

  • 我正在将我的一些Java代码转换为Kotlin,我不太明白如何实例化Kotlin代码中定义的接口。作为一个例子,我有一个接口(用Java代码定义): 然后在我的Kotlin代码中,我进一步实例化了这个接口: 而且效果很好。然而,当我将MyInterface转换为Kotlin时: 当我尝试实例化接口MyListener时,我得到了一条错误消息:-尽管在我看来除了语法之外没有什么变化。我是否误解了Ko

  • 问题内容: 有人可以说明一下可能有用的场景类型吗? 这是一种好的编程习惯吗? 问题答案: 这绝对是个好习惯,主要有两个原因: 避免代码重复 实施良好的封装

  • 我是Java Guice的新手,在设计应用程序时遇到麻烦。 我将尝试尽可能简单地解释我的设计和期望的结果。 我有一个名为 的接口,以及该接口的 3 个实现,比如 、。 我有一个名为的类,带有以下构造函数: 现在我希望能够使用注解注入