virtual和abstract关键字

简介: virtual和abstract关键字

virtual


1.类中定义的虚方法(虚方法就是virtual修饰的方法)除了辅助实现多态特性,其实它和普通函数没什么区别。基类声明或基类定义(即实现)的虚方法,其派生类可以重写也可不重写;如果派生类不重写基类虚方法,那么派生类实例访问的虚方法是基类中定义的方法


2.在基类中定义了虚方法,并且在派生类中使用override重写了该方法(C++中使用virtual关键字表示要重写虚方法),那么派生类的实例调用中,该虚方法使用的是派生类中重写的方法。


abstract


C#中abstract关键字只能用在抽象类中修饰方法,并且没有具体的实现。抽象方法的实现必须在派生类中使用override关键字来实现。抽象类和C#中的接口interface有着很重要的异同点,这里不再赘述。


总结


  1. 1.virtual方法在基类中可以实现(若未实现,子类必须为其实现),abstract方法在基类中不可实现;而在派生类中,virtual方法可重写可不重写,abstract方法必须重写。

  2. 2.抽象类不可创建实例,只能被继承,由派生类来实例化。


  1. 3.C#中有函数被声明为abstract,那么必须显式使用用abstract修饰类名。

  2. 4.C#中派生类重写基类的virtual或abstract方法,记得使用override修饰;C++中派生类重写基类的virtual方法,使用virtual修饰。
相关文章
|
设计模式 Java 测试技术
Java 中的依赖注入和控制反转(IoC)
【4月更文挑战第19天】Java编程中的依赖注入和控制反转(IoC)是提升代码可维护性、可测试性和灵活性的关键设计模式。依赖注入通过外部注入对象依赖,减少硬编码,而IoC则是将控制权交给外部框架或容器。两者带来松耦合、可测试性、代码重用和灵活性。实现方式包括Spring框架和手动注入。使用框架能提供额外功能并简化管理,但要注意明确依赖关系、避免过度依赖和选择合适注入方式。依赖注入和IoC是构建健壮系统的有效工具。
281 2
|
前端开发 Java 关系型数据库
基于springboot的教师科研信息管理系统(含ssm版本)
该系统创作于2022年3月,分为两个版本,springboot和ssm整合,数据库设计详细。数据层为MyBatis,mysql数据库,具有完整的业务逻辑,适合选题:教师、科研、论文管理、科研管理等。
基于springboot的教师科研信息管理系统(含ssm版本)
|
编解码 定位技术
谷歌地图分辨率表
版权声明:欢迎评论和转载,转载请注明来源。 https://blog.csdn.net/zy332719794/article/details/73949818 ...
2827 0
|
11月前
|
机器学习/深度学习 数据处理
大语言模型中的归一化技术:LayerNorm与RMSNorm的深入研究
本文分析了大规模Transformer架构(如LLama)中归一化技术的关键作用,重点探讨了LayerNorm被RMSNorm替代的原因。归一化通过调整数据量纲保持分布形态不变,提升计算稳定性和收敛速度。LayerNorm通过均值和方差归一化确保数值稳定,适用于序列模型;而RMSNorm仅使用均方根归一化,省略均值计算,降低计算成本并缓解梯度消失问题。RMSNorm在深层网络中表现出更高的训练稳定性和效率,为复杂模型性能提升做出重要贡献。
2508 14
大语言模型中的归一化技术:LayerNorm与RMSNorm的深入研究
|
11月前
|
Java Linux 定位技术
Minecraft配置文件参数说明(JAVA服务器篇)
Minecraft JAVA版服务器启动后会生成server.properties配置文件,位于minecraft_server/根目录下。该文件包含多项关键设置,如游戏模式(gamemode)、最大玩家数(max-players)、难度(difficulty)等。此文档详细说明了各配置项的功能与默认值,帮助用户高效管理服务器环境。
2580 60
|
8月前
|
监控 搜索推荐 Java
Java 多线程最新实操技术与应用场景全解析:从基础到进阶
本文深入探讨了Java多线程的现代并发编程技术,涵盖Java 8+新特性,如CompletableFuture异步处理、Stream并行流操作,以及Reactive编程中的Reactor框架。通过具体代码示例,讲解了异步任务组合、并行流优化及响应式编程的核心概念(Flux与Mono)。同时对比了同步、CompletableFuture和Reactor三种实现方式的性能,并总结了最佳实践,帮助开发者构建高效、扩展性强的应用。资源地址:[点击下载](https://pan.quark.cn/s/14fcf913bae6)。
478 3
|
API Windows
[原创]MASM32新手指南
[原创]MASM32新手指南
|
存储 安全 搜索推荐
最适合教育行业的远程协作工具有哪些?2024年全方位评测
随着远程工作的普及,教育行业对数字化工具的需求日益增加。本文介绍了六款适合教育行业的远程协作工具:板栗看板、Basecamp、Slack、Toggl Plan、Wrike和Miro。这些工具不仅支持任务管理、文件共享和实时沟通,还具备高度的定制性和集成能力,有助于提高教育团队的协作效率和管理质量。
最适合教育行业的远程协作工具有哪些?2024年全方位评测
|
Java 开发者
偏向锁和轻量级锁的适用场景是什么
【10月更文挑战第20天】偏向锁和轻量级锁的适用场景是什么
|
运维 网络协议 网络虚拟化
4招教你M-LAG故障定位
4招教你M-LAG故障定位
448 0
4招教你M-LAG故障定位