C#学习系列之抽象类和抽象方法

C#学习系列之抽象类和抽象方法


啰嗦

学习基础


抽象方法

abstract public void Func();

在基类中如果使用abstract,不能有函数体,那么必须在派生类要用override进行重写。用虚方法可不用重写。因为没有函数体,必须重写。

  • 抽象成员:方法、属性、事件、索引。
  • 必须用abstract修饰符标记
  • 不能有实现代码块

抽象类

  • 抽象类的存在只有一个目的,被继承
  • 抽象类不能被实例化,用abstract修饰。
  • 抽象类可以包含抽象成员和普通成员,以及任意组合。
  • 抽象类的抽象成员在派生类中需要用override关键字实现。

使用

csharp 复制代码
    class pet
    {
        public pet(string name)
        {
            _name = name;
        }
        protected string _name;
	    abstract public void speak();//没有函数体
    }
    class dog:pet
    {
        public dog(string name):base(name)
        {

        }
	    override public void speak()//重写
        {
            Console.WriteLine("");
        }
    }
    class cat : pet
    {
	    override public void speak();//重写基类的虚方法
    }

总结

学习记录

https://www.imooc.com/video/14228

相关推荐
AI算法沐枫4 分钟前
基于YOLO26深度学习的【果园荔枝检测与计数】系统设计与实现【python源码+Pyqt5界面+数据集+训练代码】
开发语言·人工智能·python·深度学习·qt·学习·机器学习
专注VB编程开发20年8 分钟前
B4A (Basic4Android) Process_Globals(应用全局)和 Globals(类中公用变量)
java·开发语言
小a杰.9 分钟前
PTO ISA 指令架构 - PTO虚拟指令集架构解析
java·开发语言·架构
会编程的土豆17 分钟前
Go 里 interface 为什么能比较?到底在比什么?
开发语言·后端·golang
nnsix21 分钟前
MVC、MVP、MVVM 架构 笔记
java·开发语言·前端
OBiO201321 分钟前
精准靶向心肌细胞的AAV怎么选择?
学习
不羁的木木26 分钟前
ArkWeb实战学习笔记02-环境搭建与基础配置
笔记·学习·harmonyos
Smile_25422041826 分钟前
vue3 + ts reactive方式清空表单对象
开发语言·前端·javascript
stars-he27 分钟前
SPICE编程与仿真学习笔记:从网表到瞬态分析
笔记·学习·硬件工程
江苏世纪龙科技31 分钟前
科鲁兹虚拟系统破解汽车实训“三难“:工位少、组织难、评价弱
学习