質問です。

class Oya{
 int d=10;
 void print(){
  System.out.println(d);
 }
}
class Kodomo estends Oya{
 int d=100;
 void print(){
  System.out.println(d);
 }
}
class Test{
 public static void main(String[] args){
  Oya oya = new Kodomo();
  System.out.println(oya.d);
 }
}
と定義して、Testを実行すると"10"が表示されます。
またTestクラスを変更し、

class Test{
 public static void main(String[] args){
  Oya oya = new Kodomo();
  oya.print();
 }
}
とした場合は"100"が表示されます。
なぜこのような違いが出るのかを、誰か説明していただけません
でしょうか?