新闻中心> 文章详情

公司里常有的Java笔试题

2015年07月22日

  要求是写出结果,并说明为什么。 南京Java培训


  据回忆程序是这样的:


  [java


  packageorg;


  publicclassTest


  {


  publicstaticvoidmain(String[]args)


  {


  Aa=newB();


  a.print();


  }


  }


  classA


  {


  privateinti=1;


  publicA()


  {


  inti=2;


  }


  publicvoidprint()


  {


  System.out.println("Theresultis:"+i);南京Java培训


  }


  }


  classBextendsA


  {


  privateinti=3;


  publicB()


  {


  inti=6;


  }


  publicvoidprint()


  {


  System.out.println("Theresultis:"+i);


  }


  }


  输出结果是:3


  此题考查的是多态。


  在这里是父类的引用指向子类的对象。


  父类的引用只能访问子类和父类共有的方法。南京Java培训


  这个程序我通过Eclipse和Debug程序观察它的执行顺序是这样的:


  [java]


  packageorg;


  publicclassTest


  {


  publicstaticvoidmain(String[]args)


  {


  Aa=newB();


  a.print();


  }


  }


  classA


  {


  //3


  privateinti=1;


  //2


  publicA()


  {


  //4


  inti=2;


  }


  publicvoidprint()


  {


  System.out.println("Theresultis:"+i);


  }


  }


  classBextendsA


  {


  //5


  privateinti=3;


  //1


  publicB()


  {


  //6


  inti=6;


  }


  publicvoidprint()  南京Java培训


  {


  System.out.println("Theresultis:"+i);


  }


  }


  现在将程序稍微改动一下:


  [java]


  packageorg;


  publicclassTest


  {


  publicstaticvoidmain(String[]args)


  {


  Aa=newB();


  a.print();


  }


  }


  classA


  {


  //3


  privateinti=1;


  //2


  publicA()


  {


  //4


  inti=2;


  }


  publicvoidprint()


  {


  System.out.println("Theresultis:"+i);


  }


  }


  classBextendsA


  {


  //5


  privateinti=3;


  //1


  publicB()


  {


  //6


  inti=6;


  }


  publicvoidprint2()


  {


  System.out.println("Theresultis:"+i);


  }


  }


  这时输出结果就是1了。


  因为父类的引用无法访问子类独有的方法。南京Java培训,来江苏万和计算机培训中心


上一篇下一篇
按时发顺丰

技术交流群

Java大数据交流群560819979    加入
Python技术交流群595083299    加入
Oracle技术交流群595119011    加入
Web前端技术交流群604697610    加入
Huawei技术交流群482919361    加入
Redhat技术交流群587875348    加入
UI设计技术交流群511649801    加入
Cisco技术交流群596886705    加入
IT运维技术交流群605888381    加入