C# 二十八、抽象abstract

本文深入探讨了抽象类和抽象方法的概念,解释了它们在面向对象编程中的作用。介绍了抽象类的特点,如不可实例化、包含抽象方法、可继承等,并通过代码示例展示了如何定义和使用抽象类及抽象方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关键字:

使用abstract关键字可以创建不完整且必须在派生类中实现的类和类的成员。

抽象类:

1、抽象类是特殊的类,只是不能被实例化;除此以外具有类的其他特性;      

2、重要的是抽象类可以包括抽象方法,这是普通类所不能的;  

3、抽象类中也可以编写非抽象方法;

4、抽象类可以派生自一个抽象类,可以覆盖基类的抽象方法也可以不覆盖。

5、抽象父类申请成对象,不能构造成父类使用,只能构造子类来使用。

6、抽象类中可以包含构造方法,但是构造方法不能被声明为抽象;

7、抽象类不能被密封或者静态。

抽象方法:

1、抽象方法只能声明于抽象类中且不能包含任何实现,抽象方法只能由子类继承并实现才能使用,且子类必须实现它;

2、子类中覆写的抽象方法必须和父类的抽象方法要一一对应(返回类型、参数要一样);

3、声明抽象方法时,不能使用virtual、static、private、sealed修饰符;

4、在抽象类中抽象方法不提供方法体。

代码示例:

    abstract class Father
    {
        public abstract void Function();       
    }
    class SonA:Father
    {
        public override void Function()
        {
            Console.WriteLine("SonA");
        }
    }
    abstract class SonB:Father
    {
        public override void Function()
        {
            Console.WriteLine("SonB");
        }
    }
    class Gson:SonA
    {
        public override void Function()
        {
            Console.WriteLine("Gson");
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            SonA sonA = new SonA();
            Gson gson = new Gson();

            sonA.Function();
            gson.Function();

            Console.ReadKey();
        }
    }

--->
SonA
Gson

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值