一.抽象类

1.抽象类可以看做对类的抽象。抽象类的用途是提供一个可供多个派子生类共享的通用基类定义

2如果一个类中没有包含足够能描述具体对象的信息,那么就称其为抽象类。

3.在C#中抽象类使用“abstract关键字修饰”语法如下:

abstract class Animal{//abstract 关键字只能修饰方法不能修饰变量
}

以下写一个案例进行知识点解析:
(1.)定义父类电器类,因为所有电器都能充电,所以类中定义充电方法,但电器只是抽象的概念,因此充电方法无法实现,只能定义为抽象方法。
注意:抽象方法也要用“abstract”关键字修饰 ,并且没有方法体

 abstract class Appliance{//这就说明抽象类中,不仅可以定义抽象方法,还可以定义各种各样的方法public abstract void charge();public void Show(){}public Appliance(){}public void Search(int a,int b){}}

(2.)定义电脑子类和手机子类并继承与电器类,并在子类中重写父类方法。

 class Computer:Appliance{//使用override关键字重写抽象方法public override void charge(){Console.WriteLine("电脑使用220v电压充电");}}
 class MobilePhone:Appliance{//使用override关键字重写抽象方法public override void charge(){Console.WriteLine("手机使用110v电压充电!");}}

(3.)创建电脑对象和手机对象,并调用充电方法

 static void Main(string[] args){Computer computer = new Computer();computer.charge();MobilePhone mobilePhone = new MobilePhone();mobilePhone.charge();}

执行效果如下图:

4.抽象方法和虚方法的区别
抽象方法和虚方法都是为了实现多态功能,其主要区别在于:抽象方法值提供一个功能名称,要求子类必须重写这个功能;而虚方法不只提供了名称还提供了默认实现方式,子类可以不重新实现该功能,直接继承就行。抽象方法和虚方法两者关系见下表:

抽象方法 虚方法
使用abstract关键字修饰 使用virtual关键字修饰
只能定义在抽象类中 可以定义在除密封类的其他类中
不允许有方法体 必须有方法体
子类必须重写抽象方法 子类可以重写虚方法,也可以直接继承不进行重写

5.抽象类五个重要结论:
(1.)如果有抽象方法的类,这个类必然是抽象类
(2.)抽象方法不能有方法体
(3.)抽象类和接口不能直接实例化,只能实例化抽象类的子类,且这个子类不能是抽象类
(4.)类继承于抽象类,就必须重写抽象类中的所有抽象方法,如果本身也是抽象类,则不需要重写抽象方法
(5.)抽象类中不仅可以包含抽象方法,还可以包含各种各样的方法

第七章节 类的抽象(抽象类)相关推荐

  1. 第七章节 类的抽象(抽象类和接口的区别)

    一.抽象类和接口的区别 在C#中抽象类和接口在使用上有很多相同点,如两者都不能实例化,都可以包含未实现的方法,其子类必须实现其未实现的所有方法,但在定义时有很大的区别.抽象类和接口语法的区别见下表: ...

  2. 第七章节 类的抽象(接口)

    一.接口 1.通过学习继承可以知道,C#中一个类只能有一个父类,如果一个类需要具有多个类的行为或特征,那么可以通过接口来实现.C#中的接口用于约束类的行为. 2.自定义接口的语法如下: [访问修饰符] ...

  3. python基础教程第三版怎么样-Python基础教程(第三版)(七)再谈抽象

    菜鸡的学习笔记. 7.1 对象魔法 多态:可对不同类型的对象执行相同的操作,但是操作将随对象所属的类型而异: 封装:对外隐藏对象内部工作原理的细节: 继承:可基于通用类创建出专用类. 按作者的意思,多 ...

  4. C#图解教程 第七章 类和继承

    类和继承 类继承 访问继承的成员 所有类都派生自object类 屏蔽基类的成员 基类访问 使用基类的引用 虚方法和覆写方法 覆写标记为override的方法 覆盖其他成员类型 构造函数的执行 构造函数 ...

  5. python基础教程第三版-Python基础教程(第三版)(七)再谈抽象

    菜鸡的学习笔记. 7.1 对象魔法 多态:可对不同类型的对象执行相同的操作,但是操作将随对象所属的类型而异: 封装:对外隐藏对象内部工作原理的细节: 继承:可基于通用类创建出专用类. 按作者的意思,多 ...

  6. 【java笔记】类的抽象

    如果父类当中的方法不确定如何进行{}方法体实现,那么这就应该是一个抽象方法 抽象方法和抽象类的定义格式: 抽象方法:加上abstract关键字,然后去掉大括号,直接分号结束 抽象类:抽象方法所在的类, ...

  7. 要关闭python解释器可使用函数或者快捷键_超星尔雅中华传统文化之戏曲瑰宝第七章节测验网课答案选修课慕课答案...

    超星尔雅中华传统文化之戏曲瑰宝第七章节测验网课答案选修课慕课答案 更多相关问题 [多选题]2018年6月初,某企业无形资产账面价值为1 000万元,采用直线法摊销.6月份发生相关业务如下: (1)1日 ...

  8. moocpython程序设计答案_中国大学MOOC免费答案_Python程序设计答案第七章节答案

    中国大学MOOC免费答案_Python程序设计答案第七章节答案 更多相关问题 阿魏酸在食品.医药等方面有着广泛用途.一种合成阿魏酸的反应可表示为:则下列说法不正确的是A.丙二酸与乙二 下列各种液体分别 ...

  9. c#面向对象程序设计——类的抽象

    7.1类的抽象: 在面向对象思想中,所有的对象都可以通过类来描述.但并不是所有的类都是用来描述对象的,如果一个类中没有包含能够描述具体对象的信息,那么就称其为抽象类. 语法: abstract cla ...

最新文章

  1. 数据结构与算法:22 精选练习50
  2. 人类高质量视觉模型YOLOP开源:同时处理三大视觉任务,还能各种超越SOTA…
  3. snmp 获取 虚拟机硬盘_服务器出故障了怎么办?SNMP告警七步走
  4. 【机器视觉】 measure_thresh算子
  5. 全国大型水库水情数据汇总2018
  6. 三大运营商将解决新老用户套餐不同权问题;罗永浩与抖音合作;Git 2.26发布 | 极客头条...
  7. CMOS 集成电路设计手册 (基础篇)--学习笔记 第二章
  8. keil5怎么放大字体_keil5不同字体不全 keil字体放大快捷键
  9. 如何简单快速的写出幸运转盘抽奖
  10. 请求接口报502错误
  11. 多路视频直播播放器系统框架
  12. matlab计算热岛效应强度,城市热岛热岛强度.ppt
  13. 【步兵 cocos2dx】热更新(下)
  14. 选定区域着色html,PS怎么填充颜色到选中区域?PS填充颜色到选中区域的方法
  15. mysql left用法
  16. Incorrect string value: ‘\\xB2\\xE9\\xD1\\xAF\\xCA\\xD3...‘ for column ‘name‘ at row 1
  17. span标签的使用场景
  18. 鳄鱼mt4复盘助手_教你一个正确的MT4复盘小技巧
  19. TYVJ 01034
  20. 基于SpringBoot框架的古风乐曲网站的设计与实现 毕业设计-附源码271611

热门文章

  1. python中如何打印阶梯_字符阶梯(python)
  2. python可以做什么-学会Python后都能做什么?网友们的回答简直不要太厉害
  3. python 菜鸟-Python3 教程
  4. python简单代码-python实现顺序表的简单代码
  5. python从入门到精通pdf-跟老齐学Python从入门到精通 电子版(pdf格式)
  6. 怎样学好python编程-Python编程怎么学习好?老男孩Python入门
  7. python所有软件-Python和pip,列出可用的软件包的所有版本?
  8. 我们体验了宝马自然语音识别,还给它出了几道「附加题」
  9. 手机APP移动应用开发
  10. 基于阿里云实现简单的语音识别功能