C#没有“多态”这个语法,多态只是一种Style,C#的函数重载、继承函数的重写、泛型等等都体现了多态——也就是一种概念,多种实现方式。
解决方案 »
- 像 360安装包 和 金山卫士 那种动态安装包 或者 离线安装包 是怎么做的啊
- C# 中 socket.send 如何发送 结构体
- c# winform中 ,如何遍例 TabControl 中的 tabpages的title
- 关于VS2005中的应用程序设置的问题?高分求教!
- 加密及数据库数据(数据库文件)安全的问题
- HttpWebRequest与WebRequest的区别?HttpWebResponse与WebResponse的区别?
- 关于.net的一个小问题?请高手指教!
- 关于C# 拨号程序(多分奉送)
- ~~~~~~写Word表格前插入一行文字,马上给分!~~~~~~~~~~~~~~~~~~·
- 我有一个OCX控件,在VB6.0下边用的很好,我想用到C#里边,却不会用了。
- 求助 新闻内文怎么分页显示呢?
- 求一验证码识别
关于继承,版主说这么多,和我的理解不大一样。如果你心中有多态~那么你就会明白版主说什么了~
这个是2个概念。你能说OO就是AOP吗?
在我的理解里,因为有了类的继承,有基类和子类,有实现接口,所以才会有多态。多态主要是为了程序的灵活性,比如一个方法要调用一个类A的fun()方法,如果这个类A并不固定,可能是多个类型。那么就可以抽象出来一个基类,把变化的内容,交给子类去做了。这样程序在这一段代码就不用怎么去维护了,将来的扩展都由子类去做。设计模式里,有一些地方就是由多态衍生出来的一些固定方式
public abstract class Aniaml//定义一个抽象类防止直接的实例化
{
protected string petName;
public Aniaml() { petName = "NoName"; }
public Aniaml(string s)
{
petName = s;
}
public abstract string sound();//抽象方法
public string PetName
{
get { return petName; }
set { petName = value; }
}
}
public class Cat : Aniaml//定义一个子类
{
public Cat() { }
public Cat(string name) : base(name) { }
public override string sound()
{
return "喵喵!";
}
}
public class Dog : Aniaml//定义一个子类
{
public Dog() { }
public Dog(string name) : base(name) { }
public override string sound()
{
return "汪汪!";
}
}
protected void Page_Load(object sender, EventArgs e)
{
Cat a = new Cat("可爱的猫猫");
Response.Write(a.PetName + "Cat的叫声:" + a.sound() + "<br/>");
Dog d = new Dog("可爱的狗狗");
Response.Write(d.PetName+"Dog的叫声:" + d.sound());
}