C# - 阻止派生类重写虚成员

 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 }

posted @ 2016-04-06 09:41  C/C++/Python/Java  阅读(406)  评论(0编辑  收藏  举报