日期:2014-05-17  浏览次数:20674 次

基础问题 关于父类与子类问题
chinese继承自person


person  p = new chinese();

为什么p不能调用chinese中的方法


上面的语句不是已经让p 指向chinese的对象了吗

 求指教

------解决方案--------------------
要显式转换成chinese才行,否则编译器只把p看成person,而不是chinese,不给你编译通过的。
------解决方案--------------------
这玩意最好还是自己领悟清楚,俺们很难跟你扯明白

你可以去看《你必须知道的.net》

如果简单点说,俺们可以概括为“冒名顶替”,虽然本质上他还是chinese,但是名义上他是person,所以他只能做名义上能做的事。

除非你((chinese)p).这样可以调用chinese的方法,这就撕破脸了,你明确的告诉他我是chinese,所以就可以做了