跳转至

抽象类(Abstract Class)#

来源:D:\study\C#1\stu0727\抽象类

抽象类是被设计出来专门让其他类继承的基类。抽象类中可以包含抽象方法(没有函数体,没有具体实现),由继承它的子类去实现。

基本语法#

// 使用 abstract 关键字声明抽象类
abstract class Printer
{
    public string Name { get; set; }
    public int Price { get; set; }

    // 抽象方法:使用 abstract 修饰,没有方法体
    public abstract void Print(string val);
}

// 子类必须实现(override)抽象方法
class ColorPrinter : Printer
{
    public override void Print(string val)
    {
        Console.WriteLine("打印的彩色内容" + val);
    }
}

class BlackPrinter : Printer
{
    public override void Print(string val)
    {
        Console.WriteLine("打印的黑白内容" + val);
    }
}

抽象类 vs 普通类#

特性 抽象类 普通类
能否实例化 ❌ 不能 new ✅ 可以
能否包含抽象方法 ✅ 可以 ❌ 不可以
能否包含普通方法 ✅ 可以 ✅ 可以
子类是否必须重写抽象方法 ✅ 如果子类不是抽象类,必须全部重写 ❌ 不需要
抽象方法能否是 private ❌ 不能(必须被子类访问)

核心理解:抽象类 = 模板/规范。它定义了"是什么"(抽象方法),但不定义"怎么做",具体的实现由子类完成。



相关笔记#