上一篇: C# 类(Class)

下一篇: C# 多态性

C# 继承

在本教程中,将介绍C#语言中的继承(Inheritance)。继承是面向对象编程(OOP)的一个重要特征,允许创建一个新类(子类),它将基于另一个现有类(父类)。子类继承并可以扩展或修改父类的属性和方法。这样可以实现代码复用和模块化。

基本概念

首先,了解以下概念:

  • 基类 (Base Class):也称为父类或超类,是被其他类继承的类。
  • 派生类 (Derived Class):也称为子类,从基类继承属性和方法的类。

创建基类

创建一个简单的基类 Animal,具有两个属性(Name和Age)以及几个方法(Eat、MakeSound和PrintInfo)。

                public class Animal
                {
                    public string Name { get; set; }
                    public int Age { get; set; }

                    public Animal(string name, int age)
                    {
                        Name = name;
                        Age = age;
                    }

                    public void Eat()
                    {
                        Console.WriteLine("The animal is eating.");
                    }

                    public void MakeSound()
                    {
                        Console.WriteLine("The animal makes a generic sound.");
                    }

                    public void PrintInfo()
                    {
                        Console.WriteLine($"Name: {Name}, Age: {Age}");
                    }
                }
                

创建子类

现在,创建一个名为 Dog的子类,继承自基类 Animal。在C#中,使用冒号(:)表示继承关系。

                public class Dog : Animal
                {
                    public string Breed { get; set; }

                    public Dog(string name, int age, string breed) : base(name, age)
                    {
                        Breed = breed;
                    }

                    // 重写基类方法
                    public override void MakeSound()
                    {
                        Console.WriteLine("The dog barks.");
                    }

                    // 添加新方法
                    public void Fetch()
                    {
                        Console.WriteLine("The dog fetches a ball.");
                    }
                }
                

在这个例子中:

  • 使用 base关键字调用基类的构造函数。
  • 重写了基类的 MakeSound方法。
  • 添加了一个新方法 Fetch

使用子类

创建一个 Dog对象,并调用其继承自 Animal的方法。

                class Program
                {
                    static void Main(string[] args)
                    {
                        Dog myDog = new Dog("Max", 5, "Golden Retriever");

                        myDog.Eat(); // 继承自基类
                        myDog.MakeSound(); // 重写后的方法
                        myDog.PrintInfo(); // 继承自基类
                        myDog.Fetch(); // 子类独有的方法

                        Console.ReadLine();
                    }
                }
                

输出结果:

                The animal is eating.
                The dog barks.
                Name: Max, Age: 5
                The dog fetches a ball.
                

小结

通过本教程,您已学会如何在C#中使用继承来创建子类,以及如何重写基类的方法并添加新方法。这些知识将有助于您更好地理解和运用面向对象编程的原则。请继续学习和探索C#的其他特性。