我是一名学生,在学习Java的过程中遇到了一个难以理解的概念,希望有人能为我解惑。我的问题是关于多态性。例如,假设我有以下代码:
Animal a = new Lizard("Lizzy", 6); //Lizard extends Animal
据我所知,由于变量类型为Animal,a将具有Animal的所有特征。但由于创建的对象是Lizard,因此Lizard类中重写的方法将被使用,而不是Animal类中的方法。这正确吗?
另外,在创建a时将使用哪个类的构造函数?
感谢任何帮助。我已经搜索了很多资料。