C#中的抽象类

本文介绍了C#编程中的抽象类,强调它们不能被实例化且可包含抽象和非抽象成员。抽象成员包括抽象方法和属性,必须在派生类中重写。接着讨论了密封类,它是不可继承的类,以及静态类,它们存储静态成员并禁止实例化。这些概念对于理解和构建面向对象的C#程序至关重要。
摘要由CSDN通过智能技术生成

一、什么是抽象类

  1. 含义:抽象类就是指设计为被继承的类,抽象类只能被用作其他类的基类。

  1. 要点:

  • 抽象类使用abstract修饰符声明

  • 抽象类不能被创建实例。

  • 抽象类可以包含抽象成员或普通的非抽象成员。(抽象成员下面会进行说明)

  • 抽象类可以继承另一个抽象类

  • 任何派生自抽象类的类必须使用override重写抽象类中所有的抽象成员,除非派生类自己也是抽象类。

二、抽象成员

  1. 含义:抽象成员是指设计用来被覆写的函数成员。

  1. 要点:

  • 抽象成员只可以在抽象类中声明。

  • 抽象成员必须是一个函数成员。(字段和常量不能为抽象成员)

  • 必须使用abstract修饰符标记。

  • 抽象成员不能有实现代码块。(代码块用分号代替)

  • 只有4个类型的成员可以声明为抽象的。(方法、属性、事件、索引器)

  • 抽象成员不能标记为虚方法。(不能使用virtual标记抽象成员)

  1. 比较虚成员和抽象成员

  1. 抽象类代码示例:

abstract class MyBase
{
    public int SideLength = 10;//数据成员
    const int TriangleSideCount = 3;//数据成员

    abstract public void PrintStuff(string s);//抽象方法
    abstract public int MyInt { get; set; }//抽象属性

    public int PerimeterLength() //非抽象方法
    {
        return TriangleSideCount * SideLength;
    }

}

//继承抽象类
class MyClass : MyBase
{
    private int _myInt;

    //覆盖抽象属性
    public override int MyInt 
    { 
        get { return _myInt; }
        set { _myInt = value; }
    }

    //覆盖抽象方法
    public override void PrintStuff(string s)
    {
        Console.WriteLine(s);
    }
}
//测试
class Test 
{
    static void Main(string[] args) 
    {
        MyClass myClass = new MyClass();
        myClass.PrintStuff("string");
        myClass.MyInt = 1;
        Console.WriteLine(myClass.MyInt);
        Console.WriteLine("Perimeter Lengeth: {0}",myClass.PerimeterLength());

    }

}

三、密封类

抽象类必须用作基类,不能像独立的类那样被实例化。密封类与抽象类相反。

  • 密封类只能用作独立的类,它不能用作基类。(不能被其他类所继承)

  • 密封类使用sealed修饰符标注。

四、静态类

  1. 含义:静态类中所有成员都是静态的。静态类用于存放不受实例数据影响的数据和函数。(常见用途:创建一个包含一组数学方法和值的数学库)

  1. 重点:

  • 类本身必须标记为static

  • 类的所有成员必须是静态的

  • 类可以有一个静态构造函数,但不能有实例构造函数,不能创建该类的实例

  • 静态类是隐式密封的,也就是说不能继承静态类。

(本章内容学习总结自《C#图解教程》)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值