public class Animal { public string word=""; //virtual表示虚方法,用以被重写 public virtual void say(){ word = "I am an animal.";} } //override表示重写(覆盖) public class Cat : Animal { public override void say(){ word = "I am a cat.";} } public class Dog : Animal { public new void say(){ word = "I am a dog.";} }
上面的三个类(Cat,Dog,Cow)继承类Animal。下面进行几种实例化测试:
1.
Animal animal = new Cat(); animal.say(); alert(animal.word);
输出的是 “I am a cat.”
2.
Cat animal = new Cat(); animal.say(); alert(animal.word);
输出的也是 “I am a cat.”
3.
Animal animal = new Dog(); animal.say(); alert(animal.word);
输出的是“I am an animal” ,
4.
Dog animal = new Dog(); animal.say(); alert(animal.word);
输出的是“I am an dog”
ps:上面可以看出override和new形式的区别