当前位置: 首页 > news >正文

(delphi11最新学习资料) Object Pascal 学习笔记---第8章第5节(封闭类和Final方法)

8.5.2 封闭类和Final方法

如前所述,Java 采用非常动态的方法,默认情况下采用延迟绑定(或虚函数)。因此,Java 语言引入了一些概念,如不能继承的类(封闭类)和不能在派生类中覆盖的方法(final方法或非虚拟方法)。

封闭类是指不能进一步继承的类。如果您要发布组件(不含源代码)或运行时包,并希望限制其他开发人员修改您代码的能力,这样做可能会有意义。最初的目标之一也是为了提高运行时的安全性,这在完全编译的语言(如 Object Pascal)中一般是不需要的。

final方法是虚方法,您在继承类中无法进一步覆盖。同样,虽然它们在 Java 中是有意义的(在 Java 中,所有方法默认都是虚方法,而final方法得到了显著优化),但在 C# 中却被采用了,因为在 C# 中,虚函数是显式标记的,其重要性要低得多。同样,它们也被添加到 Object Pascal 中,但在该语言中很少使用。

就语法而言,这是一个封闭类的代码:

typeTDeriv1 = class sealed(TBase)procedure A; override;end;

尝试从中继承会导致错误,“无法扩展封闭类TDeriv1(Cannot extend sealed class TDeriv1)”。这是最终方法的代码:

typeTDeriv2 = class(TBase)procedure A; override; final;end;

从这个类继承并覆盖A方法会导致编译器错误,“无法覆盖最终方法(Cannot override a final method)”。

相关文章:

  • 55555555555555
  • 自动化运维(四)第一个Ansible任务
  • MySQL中 in 和 exists 区别
  • Springboot集成knife4j (swagger)
  • 突破!AI机器人拥有嗅觉!仿生嗅觉芯片研究登上Nature子刊
  • STC89C51学习笔记(二)
  • Flutter-发布插件到pub上传不上问题
  • RedisDesktopManager 安装
  • 网络基础二——TCP可靠性实现机制补充
  • Composer常见错误及解决方法
  • 金融中的数学知识
  • 内部类(InnerClass) 总结
  • 计算机网络-从输入网址到访问网站的全过程
  • 金融数据_PySpark-3.0.3随机森林(RandomForestClassifier)实例
  • AI大模型与网球运动结合的应用场景及案例分析
  • chrome扩展demo1-小时钟
  • Java 最常见的 200+ 面试题:面试必备
  • java2019面试题北京
  • js继承的实现方法
  • Redux 中间件分析
  • XForms - 更强大的Form
  • 前端每日实战:61# 视频演示如何用纯 CSS 创作一只咖啡壶
  • 跳前端坑前,先看看这个!!
  • 原生 js 实现移动端 Touch 滑动反弹
  • SAP CRM里Lead通过工作流自动创建Opportunity的原理讲解 ...
  • ​软考-高级-系统架构设计师教程(清华第2版)【第20章 系统架构设计师论文写作要点(P717~728)-思维导图】​
  • ​油烟净化器电源安全,保障健康餐饮生活
  • !!Dom4j 学习笔记
  • #### golang中【堆】的使用及底层 ####
  • (2022 CVPR) Unbiased Teacher v2
  • (附源码)springboot 校园学生兼职系统 毕业设计 742122
  • (附源码)ssm学生管理系统 毕业设计 141543
  • (黑客游戏)HackTheGame1.21 过关攻略
  • (每日持续更新)jdk api之StringBufferInputStream基础、应用、实战
  • (十六)串口UART
  • (转) 深度模型优化性能 调参
  • (转)C#调用WebService 基础
  • (转)http协议
  • (转载)CentOS查看系统信息|CentOS查看命令
  • ***php进行支付宝开发中return_url和notify_url的区别分析
  • ***原理与防范
  • **Java有哪些悲观锁的实现_乐观锁、悲观锁、Redis分布式锁和Zookeeper分布式锁的实现以及流程原理...
  • .net 8 发布了,试下微软最近强推的MAUI
  • .NET C#版本和.NET版本以及VS版本的对应关系
  • .net core 6 集成 elasticsearch 并 使用分词器
  • .NET Core中Emit的使用
  • .NET/C# 的字符串暂存池
  • .net6+aspose.words导出word并转pdf
  • .Net通用分页类(存储过程分页版,可以选择页码的显示样式,且有中英选择)
  • .NET之C#编程:懒汉模式的终结,单例模式的正确打开方式
  • /dev下添加设备节点的方法步骤(通过device_create)
  • @RequestParam详解
  • [2019.3.5]BZOJ1934 [Shoi2007]Vote 善意的投票
  • [51nod1610]路径计数
  • [ai笔记4] 将AI工具场景化,应用于生活和工作