1 using System;
2
3 namespace 类_阻止派生类重写虚成员
4 {
5 // 声明一个抽象类Animal(用abstract关键字声明抽象类)
6 public abstract class Animal
7 {
8 // 基类的抽象方法Voice(); 功能在派生类实现
9 public abstract void Voice();
10 }
11
12 // 派生类(子类)继承自Animal
13 //
14 public class Horse : Animal
15 {
16 // 用sealed修饰重写的Voice()方法,无法在Horse的派生类中重写
17 public sealed override void Voice()
18 {
19 Console.WriteLine("马发出嘶....嘶....嘶....嘶的声音");
20 }
21 }
22
23 // 派生类(子类)继承Horse类
24 public class Test : Horse
25 {
26 /*--------------------------------------------------
27 // 无法重写Horse基类的密封(sealed)的方法Voice()
28 public override void Voice()
29 {
30
31 }
32 ---------------------------------------------------*/
33 }
34
35 class Program
36 {
37 static void Main(string[] args)
38 {
39 // 抽象类不能被实例化
40 //Animal a = new Animal(); // 编译错误
41 Horse h = new Horse();
42 h.Voice();
43
44 Console.ReadLine();
45 }
46 }
47 }