SAP-ABAP开发学习-面向对象开发ooalv(2)

news2024/12/19 16:37:06

SAP-ABAP开发学习-面向对象OOALV(1)-CSDN博客

本文目录

一、类的继承

多态性类继承的实现

二、抽象类

三、最终类

四、接口

五、定义全局对象

一、类的继承

        继承的本质是代码重用。当我们要构造一个新类时,无需从零开始,可以参考一个已有的类,即基类或父类,在其基础上简历一个新类,这个新建立的类称为派生类或子类。派生类可以继承基类所有的属性和方法,这样不仅提高了开发效率,还可以在此基础上添加新的特性,以满足更丰富的需求。

声明语句:CLASS <subclass>DEFINITION INHERITING FROM <superclass> .

多态性类继承的实现

        由于每个派生类的属性不同,相同的基类对象在不同的派生类中需要以不同的方式来表现,因此提供多态的概念。 在派生类中定义和基类相同的接口,但是可以使用不同的代码来实现。

声明语句: METHOD <meth> REDEFINITION .
                在派生类中使用基类的方法,使用SUPER:CALL METHOD SUPER-><meth>.
                重载方法,使用ME:CALL METHOD ME-><meth>.

二、抽象类

        含有一个或多个方法的类,如果这些方法仅包含方法定义而没有具体实现,那么这样的类被称为抽象类。抽象类不能使用CREATE OBJECT语句来创建实例对象,因为它们仅包含没有具体实现的方法。在定义抽象类时,我们会使用如下语法:CLASS DEFINITION ABSTRACT . / ENDCLASS .
        没有具体实现的方法被称为抽象方法,它们仅包含方法定义,而没有具体的代码实现,因此需要通过派生类来实现这些抽象方法。在定义抽象方法时,使用METHODS ABSTRACT来声明。

三、最终类

        最终类和最终方法都是不可继承的,它们在设计中起到了防止多级别派生可能造成的语法和语义冲突的作用。
声明语句:CLASS <class> DEFINITION FINAL .  /  ENDCLASS .
声明一个最终方法:METHODS <meth> FINAL .
确保了该方法在派生类中不会被重写,从而保持了其在整个继承体系中的唯一性和稳定性。

四、接口

        接口(INTERFACE)与抽象类相似,它定义了一些未实现的属性和方法。所有继承这个接口的类都将继承这些成员,但与抽象类不同的是,接口不需要提供方法的实现,并且不能直接实例化。接口的所有成员都是抽象的,这意味着它们只包含声明而不包含具体的实现代码。接口成员一般是公有的,以便于任何继承该接口的类都能够访问这些成员。此外,接口中不能含有构造方法,这是因为接口本身不用于创建对象实例,而是作为其他类实现特定功能的标准或协议。
声明语句:INTERFACE <intf> .
                        DATA …
                        METHOD ...  
                ENDINTERFACE .  
                CLASS <class> DEFINITION .     
                        PUBLIC SECTION .     
                        INTERFACE: int1, int2 .    
                ENDCLASS.

静态成员访问时,通过接口引用访问 intf=>const ; 其他成员,可以通过实现该接口的类本身或者类引用进行访问: class=>intf~attr.   CALL METHOD class=>intf~meth .

直接调用接口方法,必须使用循环 或者使用别名:ALIASES alias FOR intf~com1 .



五、定义全局对象

        事务代码SE24: CL_GUI_ALV_GRID
或者 在Object Navigator(SE80)中左侧的导航区域,在右键弹出的上下文菜单上选择“Create->Class Library->Class” 在弹出的窗口中输入类名,在下个输入域输入该类的简短描述,在“Instantiation”输入域选择“Public”,并且选择“Final”复选框。

说明
①Instantiation类的实例类型: PUBLIC表示该类的对象实例可以被所有用户创建、PROTECTED表示该类的对象实例只能被其本身或派生类创建,Private表示该类的对象实例只能通过其自身方法创建(Private)。
②Final 最终类: 如果选择了该项,则全局类不能被其它类所继承。
③Only modeled模型类: 用于说明该类只有图形化模型,而没有具体实现部分。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2262263.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

典型案例 | 旧PC新蜕变!东北师范大学依托麒麟信安云“旧物焕新生”

东北师范大学始建于1946年&#xff0c;坐落于吉林省长春市&#xff0c;是中国共产党在东北地区创建的第一所综合性大学。作为国家“双一流”建设高校&#xff0c;学校高度重视教学改革和科技创新&#xff0c;校园信息化建设工作始终走在前列。基于麒麟信安云&#xff0c;东北师…

Linux脚本语言学习--上

1.shell概述 1.1 shell是什么&#xff1f; Shell是一个命令行解释器&#xff0c;他为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序&#xff0c;用户可以使用Shell来启动&#xff0c;挂起&#xff0c;停止甚至是编写一些程序。 Shell还是一个功能相当强大…

2024年底-Sre面试问题总结-持续更新

这几个缩写 贴一下是因为真的会有人问:( SRE “Site Reliability Engineer” 站点可靠性工程师 SLA “Service Level Agreement” 服务可用性协议 CICD “Continuos Integration Continous Deployment” 持续集成 持续部署 3个高频问题 K8s生产环境中处理过哪些复杂 or 印象…

【硬件接口】I2C总线接口

本文章是笔者整理的备忘笔记。希望在帮助自己温习避免遗忘的同时&#xff0c;也能帮助其他需要参考的朋友。如有谬误&#xff0c;欢迎大家进行指正。 一、概述 I2C总线是一种非常常用的总线&#xff0c;其多用于一个主机&#xff08;或多个&#xff09;与单个或多个从设备通讯…

OkHttp源码分析:分发器任务调配,拦截器责任链设计,连接池socket复用

目录 一&#xff0c;分发器和拦截器 二&#xff0c;分发器处理异步请求 1.分发器处理入口 2.分发器工作流程 3.分发器中的线程池设计 三&#xff0c;分发器处理同步请求 四&#xff0c;拦截器处理请求 1.责任链设计模式 2.拦截器工作原理 3.OkHttp五大拦截器 一&#…

SAP:如何修改已释放的请求

SAP:如何修改已释放的请求 QQ出了一个新功能&#xff0c;把10年前的旧日志推给自己。这个10年前的日志&#xff0c;是用户反映在SE10中把请求释放后发现漏了内容&#xff0c;想修改已释放的请求。经调查写了一个小程序&#xff0c;实现用户的需求。 *&-------------------…

python怎么循环嵌套

嵌套循环&#xff1a; 概念&#xff1a;循环中再定义循环&#xff0c;称为嵌套循环&#xff1b; 【注意】嵌套循环可能有多层&#xff0c;但是一般我们实际开发最多两层就可以搞定了(99%的情况) 格式&#xff1a; 1、while中套while常用 2、while中套for in 3、for in中套…

前端优雅(装逼)写法(updating····)

1.>>右位移运算符取整数 它将一个数字的二进制位向右移动指定的位数&#xff0c;并在左侧填充符号位&#xff08;即负数用1填充&#xff0c;正数用0填充&#xff09;。 比如 2.99934 >> 0&#xff1a;取整结果是2&#xff0c;此处取整并非四舍五入 2.99934 会先…

MySQL -- 库的相关操作

目录 查看数据库 创建数据库 直接创建&#xff1a; 加约束条件 if not exists 字符集和校对规则 什么是字符集 什么是校对规则 校对规则的主要功能 校对规则的特性 查看指定的数据库使用的字符集和校对规则&#xff1a; 比较是否区分大小写字母差异 显示创建语句 …

Moretl开箱即用日志采集

永久免费: 至Gitee下载 使用教程: Moretl使用说明 使用咨询: 用途 定时全量或增量采集工控机,电脑文件或日志. 优势 开箱即用: 解压直接运行.不需额外下载.管理设备: 后台统一管理客户端.无人值守: 客户端自启动,自更新.稳定安全: 架构简单,兼容性好,通过授权控制访问. 架…

分享一次接口性能摸底测试过程

接口性能测试是用于验证应用程序中的接口是否可以满足系统的性能要求的一种测试方法。确定应用程序在各种负载条件下的性能指标&#xff0c;例如响应时间、吞吐量、并发性能等&#xff0c;以便提高系统的性能和可靠性。本文主要讲述接口性能测试从前期准备、方案设计到环境搭建…

【机器学习】机器学习的基本分类-无监督学习-t-SNE(t-分布随机邻域嵌入)

t-SNE&#xff08;t-分布随机邻域嵌入&#xff09; t-SNE&#xff08;t-distributed Stochastic Neighbor Embedding&#xff09;是一种用于降维的非线性技术&#xff0c;常用于高维数据的可视化。它特别适合展示高维数据在二维或三维空间中的分布结构&#xff0c;同时能够很好…

【教学类-83-03】20241218立体书盘旋蛇3.0——圆点蛇1(蚊香形)

背景需求&#xff1a; 制作儿童简易立体书贺卡 【教学类-83-01】20241215立体书三角嘴1.0——小鸡&#xff08;正菱形嘴&#xff09;-CSDN博客文章浏览阅读1k次&#xff0c;点赞24次&#xff0c;收藏18次。【教学类-83-01】20241215立体书三角嘴1.0——小鸡&#xff08;正菱形…

监控视频汇聚融合云平台一站式解决视频资源管理痛点

随着5G技术的广泛应用&#xff0c;各领域都在通信技术加持下通过海量终端设备收集了大量视频、图像等物联网数据&#xff0c;并通过人工智能、大数据、视频监控等技术方式来让我们的世界更安全、更高效。然而&#xff0c;随着数字化建设和生产经营管理活动的长期开展&#xff0…

JAVA 零拷贝技术和主流中间件零拷贝技术应用

目录 介绍Java代码里面有哪些零拷贝技术java 中文件读写方式主要分为什么是FileChannelmmap实现sendfile实现 文件IO实战需求代码编写实战IOTest.java 文件上传阿里云&#xff0c;测试运行代码看耗时为啥带buffer的IO比普通IO性能高&#xff1f;BufferedInputStream为啥性能高点…

云灾备技术

目录 云灾备分类与定义 云容灾定义与主要应用场景 云容灾定义 应用场景 云备份定义与主要应用场景 云备份定义 应用场景 云容灾参考模型与关键技术 云备份参考模型与关键技术 云灾备分类与定义 云容灾技术是指保护云数据中心业务持续性的灾备技术&#xff0c;它是云灾…

进程通信方式---共享映射区(无血缘关系用的)

5.共享映射区&#xff08;无血缘关系用的&#xff09; 文章目录 5.共享映射区&#xff08;无血缘关系用的&#xff09;1.概述2.mmap&&munmap函数3.mmap注意事项4.mmap实现进程通信父子进程练习 无血缘关系 5.mmap匿名映射区 1.概述 原理&#xff1a;共享映射区是将文件…

leetcode 面试经典 150 题:长度最小的子数组

链接长度最小的子数组题序号209题型数组解题方法滑动窗口难度中等 题目 给定一个含有 n 个正整数的数组和一个正整数 target 。找出该数组中满足其总和大于等于 target 的长度最小的 子数组 [numsl, numsl1, …, numsr-1, numsr] &#xff0c;并返回其长度。如果不存在符合条件…

代码随想录day22 | 回溯算法理论基础 leetcode 77.组合 77.组合 加剪枝操作 216.组合总和III 17.电话号码的字母组合

DAY22 回溯算法开始 学到目前最烧脑的一天 回溯算法理论基础 任何回溯算法都可以抽象成一个树结构 理论基础 什么是回溯法 回溯法也可以叫做回溯搜索法&#xff0c;它是一种搜索的方式。 在二叉树系列中&#xff0c;我们已经不止一次&#xff0c;提到了回溯 回溯是递归的副…

画一颗随机数

代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>codePen - Random Tree</title> </head> <body><canvas></canvas><script>const canvas doc…