如果你是C#的设计师,你将如何设计多态?完了,没其它提示。

解决方案 »

  1.   

    我觉得首先还是要搞清楚什么是多态。多态其实就是同一对象的同一行为,在不同的环境下做出不同的反应。比如狗狗,同样是狗叫,看见主人的叫声与看见小偷的叫声完全不同:class Person
    {
      //...
    }
    class Master : Person {}
    class Thief : Person{}class Dog
    {
        public Voice Barking (Master person)
        {
           // 温柔的叫
        }
        public Voice Barking (Thief person)
        {
           // 狂叫
        }
    }
    同样是叫,不同的输入参数,结果不同。
    多态不仅仅是在类的方法上,类的层面也有多态。比如通过基类的引用来调用派生类中的方法。
      

  2.   

    面的是一通信公司的软件开发职位,各位继续拍砖。自己是一个User,从来没从设计角度去思考开发语言。
      

  3.   

    这是很简单的面试题, 就是要看你对一门语言是否真的了解, 是不是"知其然并且知其所以然", 而不是只是会用用liabrary, 拖拖控件.其实就是问你C#多态的实现机制.
      

  4.   

    "如果你是C#的设计师,你将如何设计多态?"
    答:以虚函数,继承,接口设计多态。
                                                  -----Over!
       
      

  5.   

    多态的原理就是:同一个对象(不够准确,我理解应该是同一个类)的同一个方法(也就是方法签名相同的方法),
    在不同的环境下,会有不同的表现形式,也就是说会产生不同的效果。
      通常就是我说的编译时多态(通过重载来实现,在编译时就确定需要调用哪个方法)和运行时多态(通过对虚方法的重写来实现,需要在运行时才决定调用哪个方法,所以性能有一定的消耗,没有重载那么好).
      在c#中一切方法在没有特别声明的情况下都是非虚方法(与JAVA相反).