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

相关推荐
半夏知半秋7 分钟前
Elasticsearch Query DSL 指令整理
大数据·数据库·笔记·学习·elasticsearch·搜索引擎·全文检索
周杰伦_Jay9 分钟前
【Java集合与线程池深度解析】底层原理+实战选型+避坑指南(附代码)
java·开发语言·python
努力学习的少女14 分钟前
对SparkRDD的认识
开发语言·前端·javascript
BFT白芙堂15 分钟前
Franka机械臂“举一反三”:LLM Trainer如何通过单次演示实现自动化数据生成与长程任务学习
人工智能·学习·机器学习·自动化·模型训练·具身智能·franka
代码or搬砖17 分钟前
Java中操作Redis
java·开发语言·redis
海上彼尚22 分钟前
Go之路 - 3.go的数据类型与转换
开发语言·后端·golang
van久40 分钟前
.Net Core 学习:Razor Pages中 HTML 表头字段的两种写法对比
学习·html·.netcore
2501_916766541 小时前
【Git学习】Git的tag标签
git·学习
海上彼尚1 小时前
Go之路 - 4.go的集合[完整版]
开发语言·后端·golang
coding随想1 小时前
JavaScript Notifications API:告别alert弹窗,开启沉浸式用户体验革命!
开发语言·javascript·ux