1/1页1 跳转到查看:1064
发新话题 回复该主题

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

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

代码如下:

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有什么区别?

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

TOP

 

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

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

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

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学习者的家园 , 适宜长期居住.

TOP

 

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

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

TOP

 
1/1页1 跳转到
发表新主题 回复该主题