接口是否可以将已经实例化的对象作为属性?

is it possible for an interface to have an already instanced object as an attribute?

我正在创建一个包含许多实现 classes 的接口,并且它们都必须具有一个属性; 我想把那个属性放在他们的接口中比编写许多构造函数行更好,但是属性只能是静态最终的并且需要立即初始化。

public interface Interface{

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

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

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

是否可以添加一个通用基础 class 以配合所有 classes 都可以继承的通用接口?然后公共基础 class 构造函数可以包含属性实例。您也可以考虑使用抽象 class 而不是接口。

Java 接口描述了 class 可以做什么,而不是 class 是什么。因此,接口只描述方法。

您可以通过以下几种方式处理此问题:

使用接口,您可以为变量设置 getter,这将强制实施 classes 具有该变量。类似于 "public AttrType getAttribute();"

或者您可以创建一个 class,可能是抽象的,它实现接口并具有变量,以及它的 getter 和 setter。 subclasses 都将继承此变量和行为。