日期:2014-05-17  浏览次数:20754 次

类的继承问题,请前辈指导!先感谢了!
代码如下:   
问题:1、类继承后,方法的重写,是不是父类必须写了Virtual才行?
2、Cat这个类中,用new和override关键字有什么区别?
3、如果是编译成dll文件类,应该怎样引用后继承? 如果编译成dll文件中的没有Virtual关键字,我是不是就不能重写方法?

    public class Animal
    {
        public string Word = "";
        public virtual void Introduce()
        {
            Word = "我是动物";
        }
    }

    public class Dog : Animal
    {
        public override void Introduce()
        {
            Word = "我是狗";             
           
        }
    }
    public class Cat : Animal
    {
        public new void Introduce()
        {
            Word = "我是猫";

        }
    }

------解决方案--------------------
1、类继承后,方法的重写,是不是父类必须写了Virtual才行?
必须是这样。
2、Cat这个类中,用new和override关键字有什么区别?
new相当于公共汽车上的逃生锤,明白么?几乎用不到。它的作用是故意定义一个和基类名字完全相同但是毫不搭界的方法,你觉得这样的用途你用得到么?
3、如果是编译成dll文件类,应该怎样引用后继承? 如果编译成dll文件中的没有Virtual关键字,我是不是就不能重写方法?
是的,好比一个变量没有加上public你当然不能访问到了。
------解决方案--------------------
版主又忘了,Abstract也是可以重写的
------解决方案--------------------
表示类的继承 重载 多态我到现在用到的还不是很深 貌似我们系统曾经用过把所有的页面都继承自一个父类 这样在父类中写状态保持 子类中就不用写了。。。