在 C#面向对象编程 中,接口(Interface)和继承(Inheritance)是两个非常重要的概念。而当我们谈到 C#接口继承 和 C#方法重写 时,很多初学者容易混淆它们之间的关系。本文将用通俗易懂的语言,带你一步步理解接口如何被继承、实现类如何“重写”接口方法,并掌握 C#多态实现 的核心思想。

在 C# 中,接口是一种契约(Contract),它定义了一组方法、属性、事件或索引器的“签名”,但不提供具体实现。任何实现该接口的类都必须提供这些成员的具体实现。
// 定义一个接口public interface IAnimal{ void MakeSound(); string GetName();}严格来说,接口之间不是“继承”,而是“扩展”。一个接口可以从另一个接口派生,从而获得父接口的所有成员。这在 C# 中称为 接口继承。
// 接口继承:IDog 继承自 IAnimalpublic interface IDog : IAnimal{ void WagTail(); // 新增方法}现在,任何实现 IDog 的类,不仅要实现 WagTail(),还必须实现来自 IAnimal 的 MakeSound() 和 GetName() 方法。
很多初学者会问:“能不能像重写虚方法那样重写接口方法?”答案是:**接口方法没有默认实现,所以不能“重写”,只能“实现”**。
但在 C# 8.0 之后,接口可以包含默认实现(Default Implementation)。这时,实现类可以选择是否“重写”这个默认方法。
public interface IAnimal{ void MakeSound() { Console.WriteLine("Some generic animal sound"); } string GetName();}public class Dog : IAnimal{ public string Name { get; set; } public string GetName() => Name; // 重写接口的默认实现 public void MakeSound() { Console.WriteLine("Woof! Woof!"); }}public class Cat : IAnimal{ public string Name { get; set; } public string GetName() => Name; // 不重写,使用接口默认实现 // MakeSound() 会输出 "Some generic animal sound"}通过接口,我们可以实现 C#多态实现 —— 即同一个方法调用,在不同对象上产生不同行为。
class Program{ static void Main(string[] args) { IAnimal dog = new Dog { Name = "Buddy" }; IAnimal cat = new Cat { Name = "Whiskers" }; dog.MakeSound(); // 输出: Woof! Woof! cat.MakeSound(); // 输出: Some generic animal sound Console.WriteLine(dog.GetName()); // Buddy Console.WriteLine(cat.GetName()); // Whiskers }}这里,虽然变量类型都是 IAnimal,但实际调用的是各自类中的实现,这就是多态的核心体现。
public void Method() 覆盖它(不是用 override 关键字)。通过本文,我们深入理解了 C#接口继承 的机制、接口方法的“实现”与“重写”区别,并掌握了如何利用接口实现 C#多态实现。这些知识是 C#面向对象编程 的基石,也是构建灵活、可扩展系统的关键。
记住:接口是契约,实现是承诺。写好接口,就等于为你的代码设定了清晰的规则和边界。
本文由主机测评网于2025-12-28发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://vpshk.cn/20251213569.html