C#关于继承的问题

wu_rual123 2011-03-25 12:08:35

using System;

namespace ConsoleApplication1
{
public class father
{
public virtual void a()
{
Console.WriteLine("a");
}
}


public class child: father
{
public void c()
{
Console.WriteLine("c");
}

public override void a()
{
base.a ();
Console.WriteLine("d");
}

}

class Class1
{
static void Main(string[] args)
{
father aa = new father();
aa.a();
child bb = new child();
bb.c();
bb.a();
father dd =new child();
dd.a();
//child ff = new father();
//ff.a();
Console.ReadLine();
}
}
}


小弟不才,请问各位高手
father dd =new child(); 这句话的意思是什么?
注释掉的地方为什么会报错?
base.a (); 这句又是指什么呢

请各位高手不吝赐教
...全文
131 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
戒指 2011-03-25
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 hejun19860620 的回复:]

因为他们是父类和子类的关系
father dd =new child();这里是父类实例化子类 正确的

child ff = new father();子类是不能实例化父类的 所以错误
[/Quote]正解~
hejun19860620 2011-03-25
  • 打赏
  • 举报
回复
因为他们是父类和子类的关系
father dd =new child();这里是父类实例化子类 正确的

child ff = new father();子类是不能实例化父类的 所以错误
刘婷婷 2011-03-25
  • 打赏
  • 举报
回复
就像三楼说的
WenJie11533 2011-03-25
  • 打赏
  • 举报
回复
去看看父类和子类的关系 既然是继承 当然是子类去继承父类! 你注释的地方就错在这..
rwm5366745 2011-03-25
  • 打赏
  • 举报
回复
father dd =new child(); 派生类的实例可以作为父类的变量

base.a (); 调用父类的方法

注释部分错误的原因 就是:父类的实例不可以作为派生类的变量

amandag 2011-03-25
  • 打赏
  • 举报
回复
假设有个人类,子类包括男人和女人

那么需要人类对象的时候可以给男人,也可以给女人

人类 人类对象 = new 男人类(); 正确



男人类 男人对象 = new 人类(); 错误

base.a ();
==
调用基类的a方法
018 2011-03-25
  • 打赏
  • 举报
回复
好好去研究一下书了
dodducs 2011-03-25
  • 打赏
  • 举报
回复
看着a,b,c闹心。。。
还有,你的问题在这里出现N次了,都让人麻木了
meceky 2011-03-25
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 hejun19860620 的回复:]

因为他们是父类和子类的关系
father dd =new child();这里是父类实例化子类 正确的

child ff = new father();子类是不能实例化父类的 所以错误
[/Quote]
是地!
wu_rual123 2011-03-25
  • 打赏
  • 举报
回复
恩恩恩,明白了,小弟在这里谢过各位~
你的选择B 2011-03-25
  • 打赏
  • 举报
回复
转型为基类,不会实例化一个新的实例,相反,同一个实例会被应用为基类型
它现有的功能也是基类提供的。
你的选择B 2011-03-25
  • 打赏
  • 举报
回复
这是关于向下与向上转型的问题
所谓向上转型:子类转换为父类;向下转型:父类转换为子类
向上转型是隐式的,子类是永远属于父类的,都会成功,向上转型要求一次显示转型

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧