[已解决问题] 继承问题
提问时间: 2008-05-12 10:11
悬赏分:10 浏览:79 次
现在有类fa
public  class  fa
{
 private  string  a;
 b()//方法
   {
   }
}

public class son:fa
{
  private  string  A;
  B()//方法
    {
     }
}
当实例化的时候用  fa  sub=new son();
这个时候  他的堆中的内容是放的是son对象,
但是这个sub类型是fa,此时sub能调用son中的 B方法吗?
感觉好怪!有种说不出味道

还有个问题是:
人类    老师  这2个类,老师类继承与人类
老师   ls=new  老师();这个时候说ls是个老师【换个说法是ls是个老师实例】(这样来描述new不知道有没问题)
老师   ls=new  人类();这个时候是不是 ls是个人;

请帮助解释下  谢谢




提问者:mythzz - 初学一级
最佳答案
Father f = new Son();

读作: f这个家伙指的是儿子中属于父亲的那一部分.

2008/5/12 13:28:04 回答者:deerchao


提问者对于答案的评价:3ks
其它回答(2)
1.可以能调用son中的 B方法。

2.老师   ls=new  老师();没问题
老师   ls=new  人类(); 错误的

3.楼主的类写的不知道你要干什么的样子,你可以运行下你的程序作实际的测试,看看具体的结果。建议楼主baidu下面向对象中继承,多态的相关知识。

4.使用基类实际上都可能是在使用已强制转换为基类类型的派生类对象,所以这句fa sub = new son();  就是这样的,如果你的基类fa中有虚方法,那么你在不同的派生类重写,然后你在使用sub调用的时候就是调用的派生类的方法,这个就是多态啊。反过来当然就不对了
5天前   回答者:生鱼片 - 小虾三级
可以调用,但需要转型吧
fa sub = new son();
此时输入fs.后只会显示b方法,需要将此转型为son后才会有B方法
((son)sub).B();就可以了
5天前   回答者:Gray Zhang - 初学一级
评论
5天前   mythzz :
呵呵 ,1楼   不好意思  老师   ls=new  人类() 我知道错误的,
  人类   rl=new  老师(),这个时候就感觉怪怪的
5天前   生鱼片 :
http://msdn.microsoft.com/zh-cn/library/ms173152(VS.80).aspx
5天前   mythzz :
谢谢 生鱼片 
多态性 这些我都知道
谢谢 Gray Zhang 


 好像我没把要问的问题描述清楚  -_-#
问题描述的简单点 如下
son sub = new son(); 
这个实例化的时候这个时候应该怎么理解[此时应该是说 sub是个儿子](理解为儿子sub是个儿子实例)
fa sub = new son(); 
这个的时候  怎么说呢   这个时候他产生了个儿子实例但是是父亲类,难道读成父亲
sub是个儿子实例。
呵呵  我说的是怎么读(通俗点的理解) ,而不是他的实例化过程和内存分配。


5天前   mythzz :
而正如老师   ls=new  人类(); 这个是错误的 
这个时候  理解为 老师ls是个人类,好像也没错
   您需要登录以后才能回答!
我的问题    我要提问


快到期问题

> 问题排行榜

有不合适内容,建议去除