C# Abstract msdn 翻译

本文详细介绍了抽象类的概念及其在面向对象编程中的应用。解释了抽象类如何作为其他类的基础,并通过具体的例子展示了如何定义抽象方法以及如何在派生类中实现这些方法。

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

回忆一下

abstract类
大学时候学习的abstract类。它的逻辑大致是这样的,人是abstract,而男人和女人实实在在的存在的。abstract类中的函数只是一个声明并没有实现,也不让它实现。

正文

abstract修饰符表明被修饰的类缺少实现。abstract修饰符可以用来修饰类、方法、属性、索引器、事件。在类声明处使用abstract修饰符表明这个类打算成为其他类的基类。标记为抽象或包含在抽象类的成员必须通过从抽象类派生的类来实现。

例如,Square类必须实现Area,因为他派生自ShapesClass。

`abstract class ShapesClass
{
abstract public void Area();
}

class Square : ShapesClass
{
    /// <summary>
    /// 边
    /// </summary>
    public int area
    { get ; set ; }

    public int Side
    { get ; set ; }


    Square( int side)
    {
        Side = side;
    }
    public override void Area()
    {
        area = Side * Side;
    }

    static void Main()
    {
        Square a = new Square(12);
        a.Area();
        Console .WriteLine(a.area);
        Console .ReadKey();
    }
}

`

抽象类有以下特点:

1. 抽象类不能被实例化
2. 抽象类可能包含着抽象方法和抽象访问器
3. 不能用sealed修饰符一个抽象类,因为两个修饰符是相反的意思。sealed修饰符防止一个类被实例化而avstract修饰符需要一个类去实例化。
4. 一个派生自抽象类的非抽象类必须实现其包含的所有继承的抽象方法和访问器。

在方法和属性声明处使用abstract修饰符去指明这个方法和属性不包含实现。

抽象方法有以下特点:

1. 一个抽象方法是一个隐含的虚函数
2. 抽象方法声明只允许在抽象函数中
3. 因为一个抽象函数声明不提供实现,没有函数体,方法声明以分号结束;没有大括号。
4. 实现中要有override
5. 在抽象类中使用static或virtual是错的
6. 在静态属性中使用abstract是错误的
7. 抽象继承属性可以在派生类中重写,通过使用override。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值