Father father = new Son(); 站在声明类型的角度看问题 这个对象的声明类型是Father,所以这个对象就可以调用声明类型Father的属性和方法 站在实际类型的角度做事情 对于方法 这个对象实际上是个Son类型的对象,所在执行某个方法的时候, 如果这个方法在Son类型中被重写了,那就会执行Son类型中的内容, 否则就会执行Father中的内容 对于属性 因为属性不涉及重写,所以都是调用Father的(声明类型)属性