如教程中的Dog为Animal的一个子类并继承Animal。那么在主函数中定义Animal A = new Dog();和直接定义Dog A = new Dog();有什么差异呢??
首先,这是一种面向对象的思想。 然后“前者只能调用重写的后者可以调用整个子类里的?这样理解正确吗?
”Dog继承了Animal之后,可以拥有Animal的通用方法,在Dog里面不用再去实现。
前者用到了多态(用父类来接收子类的实例是多态的最常见的形式),而后者并没有多态的概念。