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

相关推荐
一个天蝎座 白勺 程序猿9 分钟前
KingbaseES约束机制:数据迁移中的数据完整性保障
开发语言·数据库·kingbase·kingbasees
~央千澈~31 分钟前
抖音弹幕游戏开发之第9集:pyautogui进阶 - 模拟鼠标操作·优雅草云桧·卓伊凡
开发语言·python·游戏
遇见你的雩风41 分钟前
【Golang】--- Goroutine
开发语言·golang
v沙加v43 分钟前
Java Rendering Engine Unknown
java·开发语言
张3蜂43 分钟前
python知识点点亮
开发语言·python
好学且牛逼的马43 分钟前
【Hot100|26-LeetCode 21. 合并两个有序链表 - 完整解法详解】
开发语言·python
星月总相伴1 小时前
python作用域
开发语言·python
阿里嘎多学长1 小时前
2026-02-15 GitHub 热点项目精选
开发语言·程序员·github·代码托管
C#程序员一枚1 小时前
Web Service 和 Web API
c#
嵌入式×边缘AI:打怪升级日志1 小时前
第十一章:主控访问多个传感器(Modbus 网关/桥接器设计)
开发语言·javascript·ecmascript