C#没有“多态”这个语法,多态只是一种Style,C#的函数重载、继承函数的重写、泛型等等都体现了多态——也就是一种概念,多种实现方式。

解决方案 »

  1.   


    关于继承,版主说这么多,和我的理解不大一样。如果你心中有多态~那么你就会明白版主说什么了~
    这个是2个概念。你能说OO就是AOP吗?
      

  2.   

    建议LZ 可以 去看看Delphi的VCL库源码,非常经典, VCL库源码 只要安装任何一个版本的Delphi都会有。
      

  3.   

    多态是基于类的继承、接口的实现的
    在我的理解里,因为有了类的继承,有基类和子类,有实现接口,所以才会有多态。多态主要是为了程序的灵活性,比如一个方法要调用一个类A的fun()方法,如果这个类A并不固定,可能是多个类型。那么就可以抽象出来一个基类,把变化的内容,交给子类去做了。这样程序在这一段代码就不用怎么去维护了,将来的扩展都由子类去做。设计模式里,有一些地方就是由多态衍生出来的一些固定方式
      

  4.   

    强制多态之抽象类和抽象方法的应用
    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());
        }