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

Java接口应该只包含getter吗?

陶柏
2023-03-14

我有一些关于界面使用的一般问题:

  1. 为每个对象类创建接口的优势是什么?
  2. 接口应该只包含'getter'方法吗?
  3. 为什么不是二传手?
  4. 为什么我应该为每个对象类创建一个接口?它会在JUnit测试中为我服务吗?

例如:

    public interface Animal {
      public getVoice();
      public String getName();
    }

public class Dog implements Animal {
   private String name;

   public getVoice(){
      System.out.println("Brrr");
   }
   public String getName(){
      return this.name;
   }
   public void setName(String name){
      this.name = name;
  }

}

谢谢

共有2个答案

空夕
2023-03-14

接口旨在描述合同。可以在应用程序中内部使用,通过在多个实现上提供抽象,也可以将它们提供给外部实体供其实现。

接口中可以有任意数量的方法,它们的目的是在实现类上强制实现它们,从而维护契约。

施赞
2023-03-14

为每个对象类创建接口的优势是什么?

根本没有优势。这不是接口的用途。

接口应该只包含“getter”方法吗?为什么不包括setter?

只要是方法,接口就不关心它们的功能行为。

为什么我应该为每个对象类创建一个接口?

同样,这不是接口的目的。认为这是多余的。

如果您了解什么是接口,您将了解它们的正确用法

实现接口允许类对其promise提供的行为变得更加正式。接口在类和外部世界之间形成契约,并且该契约在构建时由编译器强制执行

 类似资料:
  • 也许这是一个容易被删除的问题,但以防万一。 我最近在我的服务上执行注释方法时,怀疑这些方法是否应该包含在服务的接口上。 但是,另一方面,我的服务上有一个公共方法,但它不包括在接口上,出于某种原因,这对我来说很难闻(也许这只是一种习惯)。 那么,怎么办呢?这方面有什么惯例吗?

  • 每当我想在Docker容器中转发端口时,我使用一个简单的< code>-p 8080:8080命令。 现在,我在几个地方(这里和这里)读到,这可能是不安全的,我应该包括localhost环回,如下所示:。 有人能解释一下吗?什么时候应该这样做,实际的安全影响是什么?

  • 我必须用Java实现一个日志机制。所以我使用JEE,使用RequestFilter和拦截器。我把所有这些都放在一个叫做日志记录的包中。 我的类是:请求过滤器,响应过滤器和常量 所以我的问题是。因为类名已经存在于包中,所以不记录类名可以吗? 包日志记录和重复日志记录:请求过滤日志记录,响应过滤日志记录,ConstantsLogging

  • public final fun():myclass中定义的字符串 公共抽象乐趣getTheString():myclass中定义的字符串 我还有一个错误:类'MyClass'不是抽象的,并且没有实现MyInterface中定义的抽象成员公共抽象乐趣getTheString():String。 所以我有几个问题: null

  • 通常,当我在类的构造函数中有一个变量时,它会为该变量创建一个getter和setter。在<code>MyClass方法。 当实现时,我收到错误: 意外重写:以下声明具有相同的JVM签名(getHeString()Ljava/lang/String;): public final fun():MyClass中定义的字符串 公共抽象fun getTheString():MyClass中定义的字符串

  • 问题内容: 已关闭 。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗? 更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 改善这个问题 我是一个刚开始从事大型项目的团队的新手,该项目具有许多组件和依赖项。对于每个组件,都有一个包装,用于放置该组件的暴露接口。这是一个好习惯吗? 我通常的做法一直是将接口和实现放在同一个程序包中。 问题答案: 放置接口和实现都是司空见惯的