※ 引述《birdy1147 (Allen)》之铭言:
简单的说,当你宣告
Father fa = new Son
是将右边的内容塞给左边的结构
内存位置1 Father.name="father"
内存位置2 (Son.name="son")
内存位置3 Father.greeting -> Son.greeting
你所可以使用的项目,是参考自目前的型态
假设 Son 新增了 age,当你的型态为 Father 的时候依然无法操作这个项目 age
而 greeting 是透过继承,所以为多型
当你使用 Father.greeting 会得到 Son 的结果是因为有建立关系