接口是一类吗?

时间:2012-07-30 11:10:37

标签: java interface

接口是一种特殊的类,还是说接口根本不是类?

7 个答案:

答案 0 :(得分:26)

接口不是类,但可以说接口和类都是类型

来自Java specification

  

在Java编程语言中,每个变量和每个表达式都有一个可以在编译时确定的类型。类型可以是基本类型或引用类型。引用类型包括类类型和接口类型。

请注意,虽然有一个名为Class<T>的特殊类可以表示类和接口:

  

类Class的实例表示正在运行的Java应用程序中的类和接口。

接口由Class实例表示isInterfacetrue的事实可能会让您觉得接口只是一种特殊类型。但事实并非如此。

答案 1 :(得分:7)

不,接口不是Java中的类。

接口是一种类型,所有引用类型(即非基本类型)在Java中的处理方式非常相似。通常当人们说“上课”时,他们实际上指的是“参考类型”。

可能让您感到困惑的是,接口定义存储在.class文件中,但这只是Java的技术工件。事实上,所有引用类型定义(类,接口,注释,枚举)都存储在Java中的.class文件中。

答案 2 :(得分:6)

接口的概念来自抽象类,其中抽象类包含方法(或抽象方法)的原型,也可以定义少量方法,而接口只包含 < / strong>方法或抽象方法的原型(或签名),其定义由实现类提供。 所以从上面的陈述中可以清楚地看到,接口就像是100%的抽象类,其中 - 没有定义任何方法。 再次提到它接口就像100%的抽象类,但不是类。

“接口是类可以做什么的合同”

引入界面的一个原因是,我们可以extend只有单个类,但界面在java中带来了 一个新东西 implement所以我们可以实现成千上万的接口。所以我们不能说它是一个类。

您可以了解有关此Here的更多信息!

答案 3 :(得分:4)

接口只是一个所有实现类都应遵循的契约。 接口类似于模板,在类实现之前不会产生影响。

答案 4 :(得分:3)

是的,界面是java.lang.Class的实例。如果你有一个Class,你可以查询它是否是一个界面:http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html#isInterface()

答案 5 :(得分:1)

接口(是一组带有空体的相关方法。)只是一个接口。它不是一个类(A类是创建单个对象的蓝图)。

请注意您定义了这样的界面

interface Bicycle {....}

并且类定义如下

class MyBMX implements Bicycle{...}

所以接口是接口而不是类

答案 6 :(得分:-4)

是的,接口是一种类。简单地说,存在于类方法中,数据也存在于接口方法(仅抽象方法)和数据(仅静态和最终)中。

更多观看 https://www.youtube.com/watch?v=qgBv1_Plldo&list=PLbRMhDVUMngcx5xHChJ-f7ofxZI4JzuQR&index=21&t=13:52