抽象类和抽象方法
抽象类和抽象方法
abstract关键字
abstract [ab·stract || 'æbstrækt]
n. 梗概, 摘要; 抽象概念; 萃取物
v. 使抽象化, 提炼, 摘要
adj. 抽象的; 纯理论的; 深奥的
抽象类就是为了继承而生的!
专门用于被继承的类就是抽象类。。。他就是上帝,下边都是他的子民
类别 |
定义 |
抽象类 |
如果一个类只是表达一种抽象的概念,仅仅作为其派生类的一个基类,这样的类叫抽象类,用abstract关键字修饰。 |
抽象方法 |
用abstract关键字修饰的方法 |
抽象类:
public abstract class myClass
{
}
抽象类中的抽象方法:
public abstract void ShowInfo();
抽象类的特点:
(1) 抽象类不能被实例化,如 myClass myclass = new myClass();这是不对的,因为myClass是抽象类
(2)抽象类不能被密封。其实啊,抽象类跟密封类是死对头,抽象类可以继承其他抽象类(不过这样做没什么意义),而密封类只能做子类
(3)抽象类可以但是不是必须有抽象属性和抽象方法,但是一旦有了抽象方法,就一定要将这个类声明为抽象类
但是如果不想把类声明为抽象类,但又想实现方法在基类中不具体实现,而是在基类中重写实现功能,该怎么办呢?
可以通过把父类方法声明为虚函数 virtual的形式
把基类同一方法名声明为override来实现方法的重写
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构