跳到主要内容

C#举例子阐述什么是继承?

参考答案:

在C#中,继承是一种面向对象编程的核心概念,它允许一个类(称为派生类或子类)继承另一个类(称为基类或父类)的属性和方法。通过这种方式,子类可以复用基类的代码,并且可以根据需要添加或重写基类的方法,或者定义自己独有的属性和方法。

下面是一个简单的C#例子,展示了继承的基本用法:

// 基类(父类)
public class Animal
{
    public string Name { get; set; }

    public void Eat()
    {
        Console.WriteLine(Name + " is eating.");
    }

    public virtual void MakeSound()
    {
        Console.WriteLine(Name + " makes a sound.");
    }
}

// 派生类(子类),继承自Animal类
public class Dog : Animal
{
    public override void MakeSound()
    {
        Console.WriteLine(Name + " barks.");
    }

    public void PlayWithBall()
    {
        Console.WriteLine(Name + " is playing with a ball.");
    }
}

class Program
{
    static void Main(string[] args)
    {
        // 创建Dog对象,Dog是Animal的子类,因此可以访问Animal的属性和方法
        Dog myDog = new Dog();
        myDog.Name = "Buddy";

        // 调用从Animal类继承的方法
        myDog.Eat();

        // 调用Dog类重写的方法
        myDog.MakeSound();

        // 调用Dog类特有的方法
        myDog.PlayWithBall();
    }
}

在这个例子中:

  • Animal 类是一个基类,它有一个 Name 属性和两个方法:EatMakeSoundMakeSound 方法被标记为 virtual,这意味着它可以在派生类中被重写。
  • Dog 类是 Animal 类的子类,它继承了 Animal 类的所有属性和方法。它还重写了 MakeSound 方法,提供了狗特有的叫声。此外,Dog 类还定义了一个特有的方法 PlayWithBall
  • Main 方法中,我们创建了一个 Dog 类的实例 myDog。因为 DogAnimal 的子类,所以 myDog 可以访问 Animal 类的所有公共属性和方法。我们调用了 Eat 方法(从 Animal 继承的),重写的 MakeSound 方法(提供了狗叫的行为),以及 Dog 类特有的 PlayWithBall 方法。

通过继承,我们能够在不重复编写代码的情况下,创建具有相似属性和行为的类,并且可以扩展或修改这些行为以适应特定的子类。这有助于减少代码的冗余,提高代码的可维护性和复用性。