📜  演示具有多级继承的抽象类的 C# 程序(1)

📅  最后修改于: 2023-12-03 15:27:04.068000             🧑  作者: Mango

演示具有多级继承的抽象类的 C# 程序

介绍

在C#编程语言中,继承和多级继承是非常常见的概念。抽象类则是用于定义一组共同的特征和行为的类,但不能直接实例化。本文将演示一个具有多级继承的抽象类的C#程序,让读者了解如何通过抽象类和继承来实现代码的复用。

实现

以下是一个简单的程序,其中有一个抽象类Animal,四个派生类BirdReptileMammalFish,他们都继承自Animal类。其中BirdReptileMammal又都各自派生了两个派生类。

abstract class Animal
{
    public abstract string Name { get; set; }
    public abstract void Move();
}

class Bird : Animal
{
    public override string Name { get; set; }
    public override void Move()
    {
        Console.WriteLine(Name + " flies.");
    }
}

class Reptile : Animal
{
    public override string Name { get; set; }
    public override void Move()
    {
        Console.WriteLine(Name + " crawls.");
    }
}

class Mammal : Animal
{
    public override string Name { get; set; }
    public override void Move()
    {
        Console.WriteLine(Name + " walks.");
    }
}

class Fish : Animal
{
    public override string Name { get; set; }
    public override void Move()
    {
        Console.WriteLine(Name + " swims.");
    }
}

class Eagle : Bird
{
    public Eagle()
    {
        Name = "Eagle";
    }
}

class Snake : Reptile
{
    public Snake()
    {
        Name = "Snake";
    }
}

class Dog : Mammal
{
    public Dog()
    {
        Name = "Dog";
    }
}

class Goldfish : Fish
{
    public Goldfish()
    {
        Name = "Goldfish";
    }
}

首先我们定义了一个抽象类Animal,其中定义了两个抽象成员:NameMove()。派生类BirdReptileMammalFish都继承自Animal类并重写了Move()方法。其中,Bird类继承了Animal类并重写了Move()方法,使得Bird类可以实现Animal类中定义的Move()方法。Eagle类继承了Bird类,并通过它的构造函数赋值Name成员,SnakeDogGoldfish类同理。

结论

通过多级继承和抽象类,我们可以极大地简化代码,尤其是当我们需要实现一些共同的特性和行为时。在上面这个例子中,通过Animal抽象类和继承的方式,BirdReptileMammalFish这四个类都实现了Animal类中定义的NameMove()方法。这个例子可能比较简单,但是当我们的代码逻辑比较复杂时,通过多级继承和抽象类的方式来减少代码冗余性和提高代码重用性都是非常有用的。