c#抽象类(abstract)

概述:

C#中的抽象类是一种特殊类型的类,它不能被实例化,只能被继承。抽象类用于提供一个共享的基类,其中定义了一些方法和属性的签名,但没有具体的实现。这些方法和属性可以在派生类中进行实现。

使用抽象类的主要目的是为了实现代码的重用和模块化。抽象类可以定义一些通用的方法和属性,而具体的实现则由派生类负责。派生类必须实现抽象类中的所有抽象成员,否则派生类也必须声明为抽象类。

细节:

1.抽象方法必须定义在抽象类中。
2.抽象方法只有方法的定义,没有具体的实现,省略了方法体。
3.抽象类中也可以定义非抽象方法
4.抽象类不能通过new 实例化,抽象类可以作为基类使用,实现的子类必须,重写抽象类里面的抽象方法。
5.有很多时候,抽象父类中的某些方法无法定义具体实现,要求必须定义在子类当中去实现这些方法

abstract class Animal
{
    public abstract void Sound();  // 抽象方法

    public void Eat()  // 普通方法
    {
        Console.WriteLine("Animal is eating");
    }
}

class Dog : Animal
{
    public override void Sound()
    {
        Console.WriteLine("Dog is barking");
    }
}

class Cat : Animal
{
    public override void Sound()
    {
        Console.WriteLine("Cat is meowing");
    }
}

class Program
{
    static void Main(string[] args)
    {
        Animal dog = new Dog();
        Animal cat = new Cat();

        dog.Sound();  // 输出 "Dog is barking"
        cat.Sound();  // 输出 "Cat is meowing"

        dog.Eat();  // 输出 "Animal is eating"
        cat.Eat();  // 输出 "Animal is eating"
    }
}

在上面的例子中,Animal类是一个抽象类,其中定义了一个抽象方法Sound和一个普通方法Eat。Dog类和Cat类继承了Animal类,并实现了Sound方法。在Main方法中,我们创建了Dog和Cat的实例,并调用了它们的Sound方法和Eat方法。

抽象类的好处之一是它可以提供一个共享的基类,用于定义一些通用的行为和属性。这样一来,我们可以通过抽象类来统一处理一些与具体派生类无关的操作,从而实现代码的重用和模块化。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值