我的印象是,当一个类实现一个接口(interface)时,它正在实现抽象方法,因此使它们成为可用的非抽象方法。我的老板认为实现接口(interface)的类也是接口(interface)。这对我来说没有意义。实现接口(interface)的类不是抽象的,也没有标记为接口(interface)。有人可以对此发表意见吗?
最佳答案
类
不是接口(interface)
。*这不会仅仅因为类实现了接口(interface)而改变。
但是,实现接口(interface)的类的实例也是该接口(interface)的实例。
最大的区别,也是这里似乎被误解的一个,是类和对象之间的区别。
假设我们有以下代码:
public interface Animal {
}
public class Dog implements Animal {
public static void main() {
Animal rover = new Dog();
}
}
关于此处定义的内容之间的关系,我们可以说一些事情,也不能说一些事情。
我们可以说(假设“is (a/an)”是“is an instance of”的缩写):
- “
狗
是一种动物
。” - “
漫游者
是一只狗
。” - “
漫游者
是一种动物
。” - “
Dog
是Animal
的(子类型/子类/实现)。” - “
Dog
(呈现/提供/实现)一个接口(interface)。”*
我们不能说:
- “
Dog
是一个接口(interface)
。” (不,Dog
是一个类。)* - “
狗
是一种动物
。” (参见上文。请注意“Dog
”和“aDog
”之间的区别。)
* 从语义角度来看,可以说每个类都是一个接口(interface)。但这个论点与interface
关键字无关;它依赖于这个词的传统定义。它适用于所有类,无论该类是否实现SomeInterface
。
关于java - 实现接口(interface)的类也是接口(interface)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24293417/