一上班就看书 一下班就看书……着魔了这是哈哈,我们都知道 如果在 base类中 使用了 虚方法 virtual 意味着可以在 子类中 用override 重写该方法,那如果不重写 改成new呢?来看下代码
class myClass//定义一个基类 { virtual public void print() { Console.WriteLine("myClass"); } } class MyClass:myClass//定义子类 首先我们用隐藏父类中的虚方法 { new public void print() { Console.WriteLine("MyClass"); base.print();//在子类的方法中调用父类被隐藏的方法 } }
然后我们在main方法中执行 myClass mc = new myClass(); MyClass Mc = (MyClass)mc; mc.print();Mc.print(); 输出结果 myClass MyClass myClass
接着 我们用 重写代替隐藏 输出结果为 MyClass MyClass myClass