C# - 阻止派生类重写虚成员
Posted 勿在浮沙筑高台
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 }
以上是关于C# - 阻止派生类重写虚成员的主要内容,如果未能解决你的问题,请参考以下文章
[C++11 类的改进] --- 继承控制:final和override