我认为这意味着通过多态的概念,变量的类型可以被声明为接口的类型。例如:如果动物是一个界面,你可以编码如下:接口也是一种类型是什么意思?
Animal simba = new Lion();
我的理解是否正确?谢谢你的帮助。
我认为这意味着通过多态的概念,变量的类型可以被声明为接口的类型。例如:如果动物是一个界面,你可以编码如下:接口也是一种类型是什么意思?
Animal simba = new Lion();
我的理解是否正确?谢谢你的帮助。
每个对象都有一个型(和值)*有多种类型:基本类型(如int
),类类型(如string
),枚举,阵列(也许我忘了一些)。
术语“界面”是指一个特定类型的类类型的:它是没有成员对象(安全常量),只有公共方法,所有这些都是抽象一类**
所以:接口是一种特殊的类,它又是一种特殊的类型。所以接口是类型。在你的例子中,Animal
和Lion
都是类型,一个恰好可以转换为另一个。
*)松散地说,该类型表示“这是什么结构”,值是“这是什么内容”。该类型的5
为int
,其价值是......嗯,5
**)这使您可以从多个继承接口,而这是不可能在Java中,从多个一般继承类。
interface
可以采用类似于Java中的superclass
的行为,因为它可以采用其实现的类型。
在您的示例中,具体而言,您将Animal
定义为interface
,其中Lion
实现。
因此,您可以创建类型为Lion
的Animal
。该代码是这样的:
interface Animal {
//do interfacing stuff
}
class Lion implements Animal {
public Lion() {
//...
}
//do implementing stuff
}
class Driver {
Animal simba = new Lion(); // This works because of polymorphism.
}
你是正确的,不过,在说这是polymorphism一个例子。
是的,正确的,假设`Lion`类实现`Animal`接口。 – aroth 2011-12-16 01:12:05