Java 方法中允许哪些对象
我有一个一般性问题。假设我有以下结构:Java 方法中允许哪些对象,java,class,Java,Class,我有一个一般性问题。假设我有以下结构: interface IFirst{} class A implements IFirst{} class B extends A{} interface Animal class Dog implements Animal class Cat implements Animal class Husky extends Dog class SmallDog extends Dog class Chihuahua extends SmallDog 此外,还
interface IFirst{}
class A implements IFirst{}
class B extends A{}
interface Animal
class Dog implements Animal
class Cat implements Animal
class Husky extends Dog
class SmallDog extends Dog
class Chihuahua extends SmallDog
此外,还有以下类别:
class TestClass{
public dummy(IFirst data){}
}
那么虚拟方法接受哪种类型的对象呢?它很简单,每个对象都以某种方式实现了接口
IFirst
。
在您的示例中,这是A
和B
,因为B
扩展了A
,后者是IFirst
,所以B
也是IFirst
下面是另一个示例,其结构如下:
interface IFirst{}
class A implements IFirst{}
class B extends A{}
interface Animal
class Dog implements Animal
class Cat implements Animal
class Husky extends Dog
class SmallDog extends Dog
class Chihuahua extends SmallDog
一切都是
Animal
类型(此处:)它接受实现IFirst
接口的所有类的实例(包括A
和B
以及其他实现,如果它们存在的话),它还接受null
,方法签名语法不正确,无法编译。在询问之前,您可以很容易地对此进行测试。