Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 子类的两种不同分配的差异_Java_Allocation - Fatal编程技术网

Java 子类的两种不同分配的差异

Java 子类的两种不同分配的差异,java,allocation,Java,Allocation,动物是猫类的父类 public static void main (String[] args) { Animal myCat1 = new Cat; //Allocation 1 Cat myCat2 = new Cat; //Allocation 2 } 两种分配的区别是什么?每种分配都是正确的,不是吗 Animal myCat1 = new Cat(); 这称为多态性,其中超类引用可以保存子类对象 阅读Java教程: 这称为多态性,其中超类引用可以保存子类对象 阅读Java教程

动物是猫类的父类

public static void main (String[] args)
{
Animal myCat1 = new Cat;  //Allocation 1
Cat myCat2 = new Cat;    //Allocation 2
}
两种分配的区别是什么?每种分配都是正确的,不是吗

Animal myCat1 = new Cat();
这称为
多态性
,其中超类引用可以保存子类对象

阅读Java教程:

这称为
多态性
,其中超类引用可以保存子类对象


阅读Java教程:

这两个都无效。您需要
()
。除此之外:

  • 第一个通过其超类引用实例
  • 第二种是指它的类别

您可以通过任何超类引用任何对象,最多可引用
object
。这是多态性。

这两者都无效。您需要
()
。除此之外:

  • 第一个通过其超类引用实例
  • 第二种是指它的类别
您可以通过任何超类引用任何对象,最多可引用
object
。这是多态性。

要回答您的问题: 没有区别-在这两种情况下,“new Cat()”都分配Cat类的一个实例。 两者都是正确的-myCat1是一种动物(事实上是一只猫),myCat2是一只猫。

要回答您的问题: 没有区别-在这两种情况下,“new Cat()”都分配Cat类的一个实例。
这两种说法都是正确的——myCat1是一种动物(事实上是一只猫),myCat2是一只猫。

这是有区别的!您不能在myCat1引用上调用Cat方法,因为它是声明动物的,所以只有动物方法可用。对于myCat2,可以调用Animal和Cat方法。这是一个区别!您不能在myCat1引用上调用Cat方法,因为它是声明动物的,所以只有动物方法可用。对于myCat2,可以调用Animal和Cat方法。请仔细阅读您提到的页面并掌握代码。但是代码和多态性有什么关系?我不明白什么是多态性?在本页的末尾,有人说:Java虚拟机(JVM)为每个变量中引用的对象调用适当的方法。它不调用由变量类型定义的方法。这种行为称为虚拟方法调用,它展示了Java中重要多态性特性的一个方面。我不明白这是什么意思??你能澄清一下吗?我非常仔细地阅读了你提到的那一页,并掌握了代码。但是代码和多态性有什么关系?我不明白什么是多态性?在本页的末尾,有人说:Java虚拟机(JVM)为每个变量中引用的对象调用适当的方法。它不调用由变量类型定义的方法。这种行为称为虚拟方法调用,它展示了Java中重要多态性特性的一个方面。我不明白这是什么意思??你能澄清一下吗??