关于java中子类父类之间的关系一点心得:

  • 声明一个父类引用(变量),可以赋值一个父类对象。
  • 声明一个子类引用,可以赋值一个子类对象。
  • 声明一个父类引用(变量),可以赋值一个子类对象。
  • 声明一个子类引用,不可以赋值一个父类对象。

例如:

Dog extends Animal

Animal animal = new Dog();//可以。
Dog dog = new Animal();//不可以。

这样理解:倒过来念 Animal animal = new Dog(); 狗是动物。可以吧?是的。但是反过来,Dog dog = new Animal(); 动物是狗。很明显不符合逻辑,不可以。