我们将注释定义为接口,如下所示
@interface annot_name {
}
而且我们知道所有注释java.lang.annotation.Annotation
默认都会扩展接口。
当我检查Annotation
接口的Java库时,我发现它覆盖了Object类hashCode()
等许多方法。
如果Annotation是一个接口,那么它如何扩展Object类并覆盖其方法?接口只能扩展其他接口,不能扩展类。
所以我的问题是,如果Annotation是一个接口,那么它将如何扩展Object类并覆盖其方法
不完全是。Java语言规范第9.2节说
如果接口没有直接超接口, 则接口隐式地声明
public abstract
构件方法m
与签名
s
,返回类型r
,和throws
条款t
对应于每个public
实例方法m
与签名s
,返回类型r
,和throws
条款t
中声明Object
,除非具有相同签名的方法,相同的返回类型,并且throws
接口显式声明了兼容子句。
因此,任何人interface
都可以使用这些方法。
对于Annotation
,设计师只是选择在源代码中重新声明它们,以便他们可以记录其行为。
问题内容: 如果您定义如下界面 您可以在任何代码段中编写如下 那么equals方法从何而来,接口是否还扩展了超类Object?,如果确实如此,接口如何扩展类? 假设让该接口扩展超类Object,那么如果您看到为什么像Set这样的集合接口定义了equals()和hashCode()方法呢?所有类都扩展了Object类,因此,如果您在Object类中存在的接口中定义任何抽象方法,则实现该接口的人无需实
问题内容: 我正在学习Java,并且希望将自己的课堂变成可观察的课堂。 但是我已经有了它扩展了另一个类。 我该怎么办? 问题答案: 我建议避免完全使用该类,而应 定义事件特定的侦听器和相应的事件定义 。然后在您的类中定义一个侦听器列表,以及添加和删除侦听器以及向其传播事件的方法(请参见下文)。 强制您使用它来表示事件,然后使用来检查事件类型,这是一种丑陋的非OO方法,并使代码更难以理解。如果查看j
假设我有注释类: 如何从它扩展接口?编译器在这方面失败: 游乐场链接:https://www.typescriptlang.org/play/#src=const匿名类=类{} let a: typeof匿名类; 接口I扩展类型的匿名类{
或者特别是:两者之间的区别是什么 和 它会以任何方式影响实现类吗?
我想添加类链接,如果它是当前的URL。 URL结构如下:; 我可以使用以下代码将类添加到“当前URL链接”: 如何检查当前页面的URL(搜索参数)和链接的URL(搜索参数)是否相同,然后才能将类添加到此链接? 例如,如果我在页面:,并且如果链接href是,那么我也要向此链接添加类。(注意:考虑到这两个链接具有相同参数。)
我有一个泛型类型K,我想验证K是否实现了接口可比性。这是我的代码: 但是代码不起作用。我不想将所有K限制为实现可比性。我已经有了另一个TreeMapVector相似度类。如果K实现了接口可比性,我将使用TreeMapVector相似度类返回结果。 你认为我如何能解决这个问题?谢了。