本帖最后由 我是松鼠 于 2013-5-18 22:59 编辑
如图所示,编译结果是:在Person类中找不到talk()方法,我想弄明白的是,我如果把红线的那个p.talk();删除,运行结果是“为什么”。也就是说p调用的是子类中的say()方法,那么p就应该是属于Student类啊。那为什么又找不到Student类中的talk()方法了呢?
Person P=new Student()属于向上转型,也就是说把子类转化为父类,那么完成这句语句后p到底是属于父类还是子类呢?
另外就是强制转换问题:比如Student s=(Student)t,假如t是Person类的对象,那么完成这个强制转换之后,t是属于Person类还是Student类呢?(PS:经过我尝试,显示t应该还是属于Person类,但是为什么呢?明明已经强制转换了啊?)求高人解答,在线等,万分感谢
还有个题外话,我前两天发的一个问题帖怎么被删了,账号好像也被封了,我又没发啥不该发的,现在正在自学基础,希望过两个月能去黑马培训。
|
|