gpt4 book ai didi

java - java 对象和转换

转载 作者:行者123 更新时间:2023-11-30 04:23:51 25 4
gpt4 key购买 nike

我得到了这份陈述作为家庭作业。

哺乳动物宠物 = new Dog();

萨摩耶 s = 宠物;

我们得到了这样的图表:

动物 ---> 脊椎动物 ---> 哺乳动物 ---> 狗 ---> 哈士奇、萨摩耶、比格犬

我的理解是代码无效并且无法转换。 Mammal 指的是 Dog 对象,而 Samoyed 类型不在 Dog 或 Mammal 中。

正确吗?

最佳答案

您可以将子引用放入父对象中,但反向引用则不然。第一个陈述是有效的,因为狗是哺乳动物的 child 。但第二个语句是不正确的,因为您正在尝试将哺乳动物的父对象引用到其子引用萨摩耶犬。

基本上,JVM 使用父对象的概念来保​​存任何子引用以实现多态性。想象一个场景,您必须设计一种可以接受任何类型动物输入的方法。您可以简单地编写 testMethod(Animal Animal),此方法可以接受 Animal 类型的任何对象或其子对象(它们也是动物,因为它们继承)。如果此功能不可用,那么您最终将为不同种类的动物编写不同的方法。

希望对你有帮助!

关于java - java 对象和转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16349965/

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