>>149
ベースクラス(君の言う親インスタンス)の型の変数を通して
メンバー i を呼ぶと、実体がサブクラス(君の言う子インスタンス)でも
サブクラスのインスタンス内のベースクラスのインスタンス部分のiが呼び出される。

メソッドはサブクラスがオーバーライドしているので
そちらが使われる。

言ってみれば↑のソースだと
Child の i は隠されてしまっている状態。