特性 | 抽象类(Abstract Class) | 接口(Interface) |
实例化 | 不可直接实例化(new 抽象类名() 报错) | 不可实例化(new 接口名() 报错) |
方法实现 | 可包含普通方法(有实现)和抽象方法(无实现) | 仅包含抽象方法(无实现,C# 8.0+ 支持默认实现) |
成员权限 | 支持 public/protected 等修饰符 | 方法默认 public,无需显式声明 |
继承 / 实现限制 | 子类只能继承一个抽象类(单继承) | 类可实现多个接口(多实现) |
设计目的 | 为子类提供通用逻辑(部分实现 + 强制扩展) | 定义行为规范(纯抽象,强制实现) |
一、核心知识体系速览
知识点模块 | 核心概念 | 关键语法 / 规则 |
因子凝成灵 – 类 | 封装数据与行为的基础单元,是面向对象编程的 “蓝图” | class 类名 { 字段; 方法; 构造函数; },通过 new 实例化对象 |
灵子的繁衍 – 继承 | 子类复用父类成员,实现代码复用与扩展 | class 子类 : 父类,子类继承父类 public/protected 成员,private 成员不可见 |
灵术的传承 – 多态 | 父类引用适配子类对象,调用方法时动态执行子类重写逻辑 | 父类声明 virtual 方法,子类用 override 重写;父类 变量 = new 子类() 触发多态 base.子类–执行刚修改好的子类 |
术式的烙印 – 抽象与接口 | 定义规范,强制子类 / 实现类遵循行为约束 | 抽象类:abstract class + abstract 方法;接口:interface + 抽象方法(默认 public) |
无瑕的咒语 – 属性与异常 | 封装字段(控制读写)、捕获并处理运行时错误 | 属性:{ get; set; };异常:try-catch-finally,throw new 异常类型() |
灵子的反应 – 运算符重载与索引器 | 让自定义类型支持类似内置类型的运算符操作、数组式访问 | 运算符重载:public static 类型 operator 符号(参数);索引器:public 类型 this[参数] { get; set; } |
聪明的魔晶 – 泛型与集合 | 实现类型安全的复用(泛型)、便捷存储数据(泛型集合) | 泛型:类名<类型>/方法名<类型>;常用集合:List<T>(动态数组)、Dictionary<TKey, TValue>(键值对) |
万物驱动者 – 委托 | 封装方法的 “容器”,实现方法的动态绑定、多播调用 | 声明:delegate 返回类型 委托名(参数);绑定:+=/-=;调用:委托变量(参数);简化:Lambda 表达式 |
记忆—>理解—->运用
模仿—>实践—–>总结
费曼:输出 + 高度纠错