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 }
时间: 2024-10-11 12:55:42