gpt4 book ai didi

java - 为什么Java中的子类是父类(super class)的实例但不能分配给它?

转载 作者:行者123 更新时间:2023-11-29 09:40:35 24 4
gpt4 key购买 nike

一个非常基本的例子:

public class Human {
//human stuff
}

public class Developer extends Human{
//developer stuff
}

为什么 DeveloperHuman 的实例,但是 Developer 类不能分配给 Human

Developer dev = new Developer();
System.out.println(dev instanceof Human); //true
System.out.println(Developer.class.isAssignableFrom(Human.class)); //false

但除此之外:Human 可分配给 Developer

System.out.println(Human.class.isAssignableFrom(Developer.class)); //true

在普通英语中,我会说 Developer 对象可以从 Human 类中分配,而不是相反。

最佳答案

如果你假设有一个函数 assignableTo,这是你说的,但 assignableFrom 是相反的:

The java.lang.Class.isAssignableFrom() determines if the class or interface represented by this Class object is either the same as, or is a superclass or superinterface of, the class or interface represented by the specified Class parameter.

您可以了解更多信息,请输入 this

关于java - 为什么Java中的子类是父类(super class)的实例但不能分配给它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35716655/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com