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

相关推荐
从零开始学习人工智能4 小时前
USDT区块链转账 vs SWIFT跨境转账:技术逻辑与场景博弈的深度拆解
开发语言·ssh·swift
星释4 小时前
Rust 练习册 31:啤酒歌与字符串格式化艺术
开发语言·网络·rust
William_cl4 小时前
C# ASP.NET Controller 核心:PartialViewResult 实战指南(AJAX 局部刷新全解析)
ajax·c#·asp.net
百***58844 小时前
MacOS升级ruby版本
开发语言·macos·ruby
执笔论英雄4 小时前
【大模型训练】forward_backward_func返回多个micro batch 损失
开发语言·算法·batch
yue0084 小时前
C# winform窗体换皮肤
c#·image类
草莓熊Lotso5 小时前
C++ STL map 系列全方位解析:从基础使用到实战进阶
java·开发语言·c++·人工智能·经验分享·网络协议·everything
q***71855 小时前
QoS质量配置
开发语言·智能路由器·php
草莓熊Lotso5 小时前
《算法闯关指南:优选算法--模拟》--41.Z 字形变换,42.外观数列
开发语言·c++·算法
shura10145 小时前
如何优雅地实现参数校验
java·开发语言