java - 接口(interface)是否可以将已实例化的对象作为属性?

标签 java interface static final

我正在创建一个包含许多实现类的接口(interface),并且它们都必须具有一个属性; 我想最好将该属性放在其接口(interface)中,而不是编写许多构造函数行,但属性只能是静态最终的,并且需要立即初始化。

public interface Interface{

     static final AttrType attribute = new AttrType( *something* ); 

我有两个问题:这个属性是一个类,它的构造函数需要一些其他类型参数而不仅仅是整数,而且它也不应该在这里初始化,我需要接口(interface)的所有实现类都可以在同一个实例上工作AttrType 正如我所说,我不会在界面中实例化。

那么,由于我不够专业,有没有办法在界面中执行此操作,或者我应该在每个子类的构造函数中编写一行以放入他们需要的一个 AttrType 实例?

最佳答案

Java 接口(interface)描述了类可以做什么,而不是类是什么。因此,接口(interface)仅描述方法。

您可以通过几种方式处理这个问题:

使用接口(interface),您可以为变量提供一个 getter,这将强制实现类拥有该变量。类似于“public AttrType getAttribute();”

或者您可以创建一个类(可能是抽象类),它实现接口(interface)并具有变量及其 getter 和 setter。子类都会继承这个变量和行为。

关于java - 接口(interface)是否可以将已实例化的对象作为属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61040044/

相关文章:

java - 目标 org.codehaus.mojo :rpm-maven-plugin:2. 1.5:rpm 的参数 'group' 丢失或无效

java - 在 android 中为类编写 Parcelable 时出现 StackOverflowError

java - bean ……它到底是什么

cocoa - 如何将WebView插入到cocoa应用程序中?

c++ - C++ 中静态引用

Java 8 Map KeySet Stream 无法按预期在 Collector 中使用

c# - 对于实现接口(interface)的类型,你怎么能要求一个没有参数的构造函数呢?

iphone - 横向/纵向冲突 - iOS

dart - Dart中的静态构造函数

static - 与非成员函数的链接错误