ASP.NET学习社区ASP.NET学习区有问有答 谁帮我解决下这段代码中的问题?

1  /  1  页   1 跳转 查看:587

谁帮我解决下这段代码中的问题?

谁帮我解决下这段代码中的问题?

代码如下:

public class Animal
{
    public string sflag;
    public virtual void Bit(){sflag = "This is an animal.";}
}
public class Cat:Animal
{
    public override void Bit(){sflag = "This is a cat.";}
}
public class Dog:Animal
{
  public override void Bit(){sflag = "This is a dog.";}
}

问题:
1.为什么Animal中要用public virtual void Bit(){sflag = "This is an Animal.";}而Cat和Dog中要用public override void Bit(){sflag = "This is a cat.";}和public override void Bit(){sflag = "This is a Dog.";}

2.public override void Bit()和public override void Bit()有什么区别?

3.为什么有些public后有void而有些又没有?有void和没有void有什么区别?

就这三个问题,麻烦高手帮忙解决一下!谢谢!
 

回复:谁帮我解决下这段代码中的问题?

首先警告你一下:不要同一内容发多个重复主题!

这里简单说一下我个人的意见:

1. 这是一种继承关系。Animal是父类,他 的 Bit() 是虚拟方法(virtual),此种方法可以在子类中override。cat和dog是子类,他们继承自animal,并override了bit()方法。只有父类中的virtual方法,子类中才能override。

2。不明白你的意思。

3。void是方法返回值的一种,c#中的方法都必须有返回值。你上面说的有的没有void,可能说的是类的定义吧。类的定义当然和方法不同了,不可能返回void,当然也可以理解为,类的定义返回class类型

建议你看一些c#中 关于面向对象 的教程,也学习一下 c#中的关键词。
最后编辑aspx1 最后编辑于 2008-03-19 07:31:13
http://www.Aspx1.Com
请帮忙宣传Aspx1 , Aspx1是ASP.NET学习者的家园 , 适宜长期居住.
 

回复:谁帮我解决下这段代码中的问题?

回复的经典
、哭┈゛.並不代表Wo屈服х. 退一步...並不象徵Wo認輸..→.放手.ǐ.o.並不表示Wo放棄.正如Wo微笑.並不意味Wo快樂┈┊
 
1  /  1  页   1 跳转

版权所有 ASP.NET学习门户 2.0.1214   Sitemap  

返顶部