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

相关推荐
天真萌泪18 分钟前
JS逆向自用
开发语言·javascript·ecmascript
野生技术架构师33 分钟前
一线大厂Java面试八股文全栈通关手册(含源码级详解)
java·开发语言·面试
摇滚侠39 分钟前
如何选择 nodejs 版本,nodejs 版本号详解
学习
醇氧1 小时前
【学习】IP地址:数字世界的“门牌号”怎么读?
网络协议·学习·tcp/ip
Q一件事1 小时前
R语言制图-相关性及关系网络图
开发语言·r语言
坊钰1 小时前
Java 死锁问题及其解决方案
java·开发语言·数据库
talen_hx2962 小时前
《零基础入门Spark》学习笔记 Day 11
笔记·学习·spark
551只玄猫2 小时前
【数学建模 matlab 实验报告1】
开发语言·数学建模·matlab·课程设计·实验报告
ZhiqianXia3 小时前
gem5 模拟器学习笔记(1):核心术语整理
笔记·学习