方法的重载、类的继承

REPORT  Z_METHOD_REDEFINITION.
CLASS vehicle DEFINITION INHERITING FROM object.     所有的类都继承 object
  PUBLIC SECTION.
    METHODs:accelerate,write_status.
  PROTECTED SECTION.
    DATA speed type i.
ENDCLASS.

CLASS plane DEFINITION INHERITING FROM vehicle.      “继承基类vehicle,必须使用关键字INHERITING FROM
  PUBLIC SECTION.
    METHODs:rise,write_status REDEFINITION.        方法write_status 在子类中将会被重载,重新定义,必须用关键字REDEFINITION声明
  PROTECTED SECTION.
    DATA altitude TYPE i.
ENDCLASS.

CLASS ship DEFINITION INHERITING FROM vehicle.
  PUBLIC SECTION.
  METHODs write_status REDEFINITION.       
  ENDCLASS.

CLASS vehicle IMPLEMENTATION.
  METHOD accelerate.
    speed speed + 1.
  ENDMETHOD.
  METHOD write_status.
    WRITE: /  'Speed:',  speed.
  ENDMETHOD.
ENDCLASS.

CLASS plane IMPLEMENTATION.
  METHOD rise.
    altitude altitude + 1.
    ENDMETHOD.
    METHOD write_status.
      WRITE 'Plane:'.
      CALL METHOD super->write_status.        在子类中如果想使用基类中的原始方法时必须在子类实现的内部调用,必须用关键字super
      WRITE: 'Altitude:',altitude.
      ENDMETHOD.
  ENDCLASS.
CLASS ship IMPLEMENTATION.
  METHOD write_status.
  WRITE: 'Ship speed:',speed.
  ENDMETHOD.
  ENDCLASS.
   DATA:plane_Ref TYPE REF TO plane,     创建一个引用数据对象,该数据对象的类型定义为指向一个类plane的对象指针
         ship_ref TYPE REF TO ship.
   START-OF-SELECTION.
   CREATE OBJECT :plane_Ref,ship_ref.  定义指针后,create object plane是创建这个类的实例
   call METHOD :plane_Ref->accelerate,              
   plane_Ref->rise,
   plane_ref->write_status,
   ship_ref->accelerate,
   ship_ref->write_status.

转载于:https://www.cnblogs.com/caizjian/p/3237320.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值