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

相关推荐
敲代码的瓦龙13 小时前
操作系统相关的一些问题总结
linux·c语言·开发语言
牛奔13 小时前
php 8.2 配置安装php-zbarcode扩展
android·开发语言·php
Fcy64813 小时前
C++ 模版(进阶)(含array解析)
开发语言·c++·stl·array·模版
公子小六13 小时前
推荐一种手动设置异步线程等待机制的解决方案
windows·microsoft·c#·.net
OKkankan13 小时前
多态概念及使用
开发语言·数据结构·c++·算法
hudawei99613 小时前
kotlin协程编译成Android字节码后是什么样的
android·开发语言·kotlin
列星随旋13 小时前
redis分片集群的部署和使用
redis·学习
小周码代码13 小时前
js 数字金额转为大写 js 金额转大写
开发语言·前端·javascript·js工具
行走在电子领域的工匠13 小时前
台达ST:自定义串行通讯传送与接收指令COMRS程序范例五
开发语言·台达plc·st语言编程·串口自定义协议
Chennnng13 小时前
rsl_rl框架学习
学习