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 分钟前
C++ 标准库参考手册深度解析
java·开发语言·c++
٩( 'ω' )و26017 分钟前
stl_list的模拟实现
开发语言·c++·list
奕天者20 分钟前
C++学习笔记(三十三)——forward_list
c++·笔记·学习
麻芝汤圆35 分钟前
MapReduce 的广泛应用:从数据处理到智能决策
java·开发语言·前端·hadoop·后端·servlet·mapreduce
珊瑚里的鱼39 分钟前
第五讲(下)| string类的模拟实现
开发语言·c++·笔记·程序人生·算法·visualstudio·visual studio
哈哈哈哈哈哈哈哈哈...........42 分钟前
【java】在 Java 中,获取一个类的`Class`对象有多种方式
java·开发语言·python
@小白向前冲1 小时前
python 重要易忘 语言基础
开发语言·python
蹦蹦跳跳真可爱5891 小时前
Python----计算机视觉处理(Opencv:道路检测之车道线拟合)
开发语言·人工智能·python·opencv·计算机视觉
6<71 小时前
【go】空接口
开发语言·后端·golang
武昌库里写JAVA1 小时前
Golang的消息中间件选型
java·开发语言·spring boot·学习·课程设计