BC404学习笔记-ABAP面向对象编程(二)-继承中的构造函数
2016-04-12 14:41
344 查看
关于构造函数注意的是:
1. CREATE OBJECT 的时候会自动调用构造函数
2.父类自定义了构造函数后,子类必须在其构造函数里面调用父类的构造函数 call METHOD super->constructor,并且是在子类构造函数里的第一条语句。这样做是为了能确保对象正确的被实例化。可以这样理解,子类时继承父类的,所以先得构造出父类,子类才知道继承的是个什么东东。另外一方面,子类可以直接使用父类的public的变量和方法,所以得先调用父类构造方法初始化父类的数据。
3.构造函数可以有多个,参数列表不一样就行。参考重载
4.静态构造函数,不用在子类构造函数中调用。系统会自动调用。并且会先调用静态构造函数
1. CREATE OBJECT 的时候会自动调用构造函数
2.父类自定义了构造函数后,子类必须在其构造函数里面调用父类的构造函数 call METHOD super->constructor,并且是在子类构造函数里的第一条语句。这样做是为了能确保对象正确的被实例化。可以这样理解,子类时继承父类的,所以先得构造出父类,子类才知道继承的是个什么东东。另外一方面,子类可以直接使用父类的public的变量和方法,所以得先调用父类构造方法初始化父类的数据。
3.构造函数可以有多个,参数列表不一样就行。参考重载
4.静态构造函数,不用在子类构造函数中调用。系统会自动调用。并且会先调用静态构造函数
REPORT ZYHYCAST. CLASS lcl_airplane DEFINITION. PUBLIC SECTION. DATA: p TYPE i. METHODS: get_name EXPORTING name1 TYPE string, constructor. "构造函数(无参) 也可以 PRIVATE SECTION. DATA: name TYPE string, fuel TYPE n LENGTH 10. ENDCLASS. CLASS lcl_airplane IMPLEMENTATION. METHOD constructor. name = 'lcl_airplane'. write:/ 'call lcl_airplane constructor'. ENDMETHOD. METHOD get_name. name1 = name. ENDMETHOD. ENDCLASS. CLASS lcl_cargo_airplane DEFINITION INHERITING FROM lcl_airplane. PUBLIC SECTION. METHODS: constructor, get_cargo EXPORTING cargo_name TYPE string. PRIVATE SECTION. DATA: cargo TYPE string. ENDCLASS. CLASS lcl_cargo_airplane IMPLEMENTATION . METHOD constructor. call METHOD super->constructor."必须调用父类构造函数(如果父类有) cargo = 'cargo_airplane'. "p = 1. "正确,可以直接访问父类的公有变量 "fuel = '1'. "错误 不能直接访问父类的私有变量 WRITE: /'call lcl_cargo_airplane construtor : cargo=', cargo. ENDMETHOD. METHOD get_cargo . cargo_name = cargo. ENDMETHOD. ENDCLASS. DATA: airplane TYPE REF TO lcl_airplane, cargo_airplane TYPE REF TO lcl_cargo_airplane. DATA: temp TYPE string. START-OF-SELECTION. CREATE OBJECT airplane. CREATE OBJECT cargo_airplane.
相关文章推荐
- Python小程序
- mongo数据多进程导入mysql数据库(YII2实现)
- phpExcel相关操作
- [Java] 03 String获取文件后缀名,判断文件是否合法
- 使用mybatis generator自动创建代码
- java在excel里插入文字数据和图片(JXL方式)
- Java进阶之----LinkedList源码分析
- delphi bpl插件系统开发(转)
- asp.net一般处理程序利用反射定位方法
- 编写高性能的Lua代码
- 组合模式(composite)C++实现
- c++上机实验---3
- Awesome Python Books Awesome
- XML数据映射到javaBean
- php后台服务防止交叉执行
- Java实现邮件发送实例
- myeclipse测试数据库连接
- 类字面变量
- java学生成绩管理系统
- 码农小汪-spring框架学习之9-基于 Java 的配置元数据 @ImportResource