C#中Abstract和Virtual
2024-10-11 07:49:13
在C#的学习中,容易混淆virtual方法和abstract方法的使用,现在来讨论一下二者的区别。二者都牵涉到在派生类中与override的配合使用。
一、Virtual方法(虚方法)
virtual 关键字用于在基类中修饰方法。virtual的使用会有两种情况:
情况1:在基类中定义了virtual方法,但在派生类中没有重写该虚方法。那么在对派生类实例的调用中,该虚方法使用的是基类定义的方法。
情况2:在基类中定义了virtual方法,然后在派生类中使用override重写该方法。那么在对派生类实例的调用中,该虚方法使用的是派生重写的方法。
二、Abstract方法(抽象方法)
abstract关键字只能用在抽象类中修饰方法,并且没有具体的实现。抽象方法的实现必须在派生类中使用override关键字来实现。
接口和抽象类:
最本质的区别:抽象类是一个不完全的类,是对对象的抽象,而接口是一种行为规范。
最新文章
- iOS Run_time
- 无法启动此程序,因为计算机中丢失AdbWinApi.dll。尝试重新安装该程序以解决此问题
- xcode7 打开工程错误 This Document requires xcode8.0 or later.
- GL_GL系列 - 多币种管理分析(案例)
- Linux_系统信息
- 高级I/O之非阻塞I/O
- cocos2dx 初探 - VS2012 HELLOWORLD
- TCP/IP 要点备忘
- 敏捷开发(七)- SCRUM评估会议
- java使用字节流和字符流实现文件复制
- typeof、constructor和instance
- 全国交通咨询系统 by C++ on Linux
- python3中time模块的用法及说明
- OO面向对象课程作业1-3总结
- Java服务使用Redis实现分布式全局唯一标识
- AngularJS学习之旅—AngularJS 过滤器(七)
- Ajax如何实现从前端不刷新页面就可以到后端取到数据
- 最棒的 JavaScript 学习指南(2018版)
- CSS-三角形及其原理
- 字符编码_Windows资料
热门文章
- JavaScript常用技巧总结(持续添加中...)
- DEV柱状图----傻瓜版
- 极其简单的搭建eclipse的android开发环境
- Android 异步Http框架简介和实现原理
- 【Android】用HandlerThread模拟AsyncTask功能(ThreadTask)
- Android开发拾遗(一)用Wi-Fi连接adb
- Play Framework 完整实现一个APP(二)
- java环境变量 windows centos 安装jdk
- 用Phaser实现Flappy Bird 游戏
- FATAL ERROR: Could not find ./bin/my_print_defaults的解决办法