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

相关推荐
im_AMBER5 分钟前
从面试题看JS变量提升
开发语言·前端·javascript·前端框架
故事和你915 分钟前
洛谷-数据结构1-2-二叉树1
开发语言·数据结构·c++·算法·leetcode·动态规划·图论
大橘6 分钟前
【qml-5.1】qml与c++交互(QML_ELEMENT/QML_SINGLETON)
开发语言·c++·qt·交互·qml
凭君语未可7 分钟前
从静态代理走向动态代理:理解 JDK 动态代理的本质
java·开发语言
悠哉悠哉愿意14 分钟前
【物联网学习笔记】TIM
笔记·单片机·嵌入式硬件·物联网·学习
小碗羊肉18 分钟前
【从零开始学Java | 第三十八篇】序列化流(Object Stream)
java·开发语言
百锦再19 分钟前
使用JavaScript获取和解析页面内容的完整指南
开发语言·前端·javascript·python·flask·fastapi
iCxhust19 分钟前
C#如何实现textbox文本多行输出 且自动换行输出
开发语言·c#
想带你从多云到转晴20 分钟前
02、JAVAEE--多线程(二)
java·开发语言·javaee
实在智能RPA20 分钟前
Agent 如何处理流程中的异常情况?——2026企业级智能体稳定性架构深度拆解
开发语言·人工智能·ai·架构·php