【C#学习笔记】【Abstract】

C#学习笔记系列

第一章 【C#学习笔记】【StackTrace】
第二章 【C#学习笔记】【Attribute】
第三章 【C#学习笔记】【Interface】
第四章 【C#学习笔记】【GUID】
第五章 【C#学习笔记】【Virtual】
第六章 【C#学习笔记】【Abstract】



前言

关于C#中抽象类(abstract)详解。


一、abstract介绍

  • abstract修饰符可用于类、方法、属性、索引和事件。
  • abstract修饰符用于简单地概括一个不完整的内容(摘要)。常用于基类,由派生类来继承实现基类的抽象属性和方法。
  • 抽象类是对具有相同行为和特征的抽象,抽象类中的成员不会指定具体细节,一般再其派生类中去实现具体内容。
  • 在普通类前加上abstract修饰符即可标注为抽象类。 如果一个普通类中对其成员使用了abstract修饰符,则该类必须修饰为抽象类。
  • 无法使用sealed修饰符来修改抽象类,因为两个修饰符的含义相反。sealed修饰符阻止类被继承,而abstract修饰符要求类被继承。
  • 继承抽象方法的派生类,必须实现override抽象类中的所有成员,用override重写来实现。
  • 抽象类无法被实例化,但可以让派生类实例化。
  • 抽象方法必须声明在抽象类中,声明抽象方法时,不能使用virtual、static、private修饰符。
  • 抽象方法声明不提供实际的声明,因此没有方法主体,和接口类似,和虚方法不一样。

二、抽象类的使用

2.1.声明形式

abstract class Person
{
    public abstract void IDentity();
}

2.2.调用方法

abstract class Person
{
    public abstract void IDentity();
}
class Boy:Person
{
    public override void IDentity()
    {
        Console.WriteLine("我是一个人");
    }
}

三、抽象类的应用场景

抽象类用简单的描述就是:我是老子(抽象类),你要是跟了(继承)老子,你就必须得会干什么(实际实现)
举个场景就是:老子会大人,那你也必须会大人,但你是轻轻地打,还是狠狠的打,你自己决定,但你必须得会打人。

如果一个类设计的目的是用来被其他类继承的,它代表一类对象的所具有的公共属性或方法,那么这个类就应该设置为抽象类。

四、对比Interface、Virtual、Abstract

这三者很容易混淆,因为都是与继承有关系,并且涉及到override的使用

virtual方法有具体的实现,interface接口内的方法和abstract抽象方法都没有具体的实现;
virtual方法在派生类中可以重写覆盖也可以不重写,interface接口内的方法和abstract抽象方法则必须要被显式重写;
interface接口可以多重继承,virtual所在的类和abstract抽象类都是属于基类不可以多重继承;
interface只是一种行为规范,而abstract抽象类是一个不完全的类,是对对象的抽象

总结

不积硅步,何以至千里

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值