当前位置: 首页 > article >正文

C#(19) 抽象类和抽象方法,接口

抽象类和抽象方法

抽象类

概念:被抽象出来的类

抽象这个概念在哲学、艺术、数学和计算机科学中都有广泛的应用。简单来说,抽象是将具体事物或现象的共同特征提炼出来,而忽略细节和个别差异的过程。 

打个比方,为什么鸟叫鸟,因为它有翅膀(外貌特征),它得会飞吧(行为特征),但是翅膀长啥样,怎么飞,这些就是根据固定的鸟群来改变的,那我们现在抽象出来的抽象类只用形容鸟为什么是鸟就行了,至于它翅膀怎么样,飞怎么样,不是这里应该操心的,而是继承的子类应该关心的东西。

关键字:abstract

特点:

  1. 是不能被实例化的类,其实就是用来给其他类继承的。
  2. 遵循里氏替换原则
  3. 可以包含抽象方法
  4. 继承抽象类,必须实现里面的抽象方法
     

抽象函数(纯虚方法)

概念:只写有什么,不写具体

还是那个例子,鸟只要会飞就行,怎么飞不用管 。

关键字:abstract

特点:

  1. 只能在抽象类中声明
  2. 没有方法具体
  3. 不能是私有的(具体原因你可以思考一下)
  4. 继承后必须实现,用override重写
    ps:虚方法和抽象方法都可以被子类无限重写。

示例

我们还是用鸟儿那个例子。希望你能感受到抽象类和抽象方法的使用,概念不难,我相信你能很快学会。

using System;  

namespace BirdExample  
{  
    // 抽象类 Bird  
    public abstract class Bird  
    {  
        // 鸟儿的名称  
        public string Name { get; set; }  

        // 鸟儿的翼展  
        public double WingSpan { get; set; }  

        // 构造函数  
        protected Bird(string name, double

http://www.kler.cn/a/541010.html

相关文章:

  • React受控组件的核心原理与实战精要
  • Gitlab中如何进行仓库迁移
  • redis底层数据结构——简单动态字符串
  • 【DeepSeek × Postman】请求回复
  • 深度学习-利用预训练的 ResNet 和 DenseNet 模型进行医学影像诊断
  • 四次挥手详解
  • 使用 PDF SDK 通过页面分割和数据提取对建筑图纸进行分类
  • MYSQL实现原理 - 事务的隔离级别
  • nginx负载均衡后sse效果出不来,应该怎么排查
  • PAT甲级1053、 Path of Equal Weight
  • 游戏引擎学习第97天
  • 【探索未来科技】2025年国际学术会议前瞻
  • 2025影视泛目录站群程序设计_源码二次开发新版本无缓存刷新不变实现原理
  • 前端基础内容(一)
  • 拉格朗日插值法的matlab实现
  • .net处理dynamic类型运行之后的数据
  • 12.10 LLM 操作能力的边界突破(WebGPT vs SayCan)
  • 数据中心网络架构 — 云网一体化数据中心网络 — 算力网络 — SDN 架构
  • Redis7.0八种数据结构底层原理
  • 区块链100问之加密算法
  • 【机器学习】K-Nearest Neighbor KNN算法原理简介及要点
  • echarts 鼠标移入柱状图展示手指,移入label 展示箭头
  • 美创科技获评“浙江省重点专精特新中小企业”
  • win10 llamafactory模型微调相关②
  • STL函数算法笔记
  • 【扫描件PDF】如何批量识别扫描件PDF多个区域内容保存到Excel表格,基于WPF和腾讯OCR的详细解决方案