C#怎么实现继承 C#类的继承与多态方法

3次阅读

C# 中 继承 用冒号“:”声明,子类 自动获得 父类 非私有成员;多态 通过父类变量引用子类 对象 、virtual/override 配合实现;抽象类和 接口 用于强化多态设计。

C# 怎么实现继承 C# 类的继承与多态方法

继承:用冒号“:”声明子类

在 C# 中,继承通过类定义时的冒号(:)语法实现。子类继承父类后,自动获得父类的非私有字段、属性和方法。

例如:

public class Animal {public void Eat() => console.WriteLine(“ 吃东西 ”); }
public class Dog : Animal {public void Bark() => Console.WriteLine(“ 汪汪叫 ”); }
Dog d = new Dog(); d.Eat(); // 可调用继承来的方法

访问修饰符决定能否被继承

只有 publicprotected 成员可被子类访问;private 成员不可见,internal 仅限同一程序集内继承可见。

若希望父类方法允许子类重写,需显式标记为 virtual;子类用 override 实现重写:

  • public virtual void Speak() => Console.WriteLine(“ 动物发声 ”);
  • public override void Speak() => Console.WriteLine(“ 小狗汪汪 ”);

多态:同一调用,不同行为

多态的核心是“用父类变量引用子类对象”,运行时根据实际类型调用对应方法。

例如:

Animal a1 = new Dog();
Animal a2 = new Cat();
a1.speak(); // 输出“小狗汪汪”
a2.Speak(); // 输出“小猫喵喵”

前提是 Speak() 在 Animal 中是 virtual,Dog/Cat 中都用 override 重写。

抽象类与接口强化多态设计

若父类不适合被实例化(如“动物”不能直接 new),可用 abstract class 声明,并包含 abstract 方法强制子类实现。

接口(Interface)则用于定义契约,支持 多继承(一个类可实现多个接口),适合解耦和测试。

常见组合:
– 抽象基类 封装 共性逻辑
– 接口定义能力(如 IComparable, IDisposable
– 子类继承抽象类 + 实现接口 → 更灵活的多态结构

基本上就这些。继承和多态不复杂但容易忽略 virtual/override 的配对,写的时候留心一下访问修饰符和关键字即可。

站长
版权声明:本站原创文章,由 站长 2025-12-23发表,共计958字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
1a44ec70fbfb7ca70432d56d3e5ef742
text=ZqhQzanResources