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

相关推荐
代码不行的搬运工2 分钟前
面向RDMA网络的Swift协议
开发语言·网络·swift
明月别枝惊鹊丶3 分钟前
【C++】GESP 三级手册
java·开发语言·c++
不如打代码KK7 分钟前
Java SPI与Spring Boot SPI的区别
java·开发语言·spring boot
pixle07 分钟前
从零学习Node.js框架Koa 【七】Koa实战:构建企业级邮箱验证注册系统
javascript·学习·node.js·koa·注册·全栈·邮箱注册
代码or搬砖15 分钟前
自定义注解全面详解
java·开发语言
南_山无梅落26 分钟前
4-Python3输入输出学习笔记:input()与print()的灵活使用
笔记·python·学习·input·print
嵌入式小能手27 分钟前
飞凌嵌入式ElfBoard-文件I/O的深入学习之I/O多路复用
linux·服务器·学习
_Cherry|27 分钟前
Unity中窗口调整
unity·c#·游戏引擎
心动啊12135 分钟前
简单学下chromaDB
开发语言·数据库·python
江上鹤.14841 分钟前
Day33类装饰器
开发语言·python