• 方法的重载、类的继承


    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.

  • 相关阅读:
    字符串替换
    字符串查找
    字符串比较
    字节与字符串相互转换
    1365. How Many Numbers Are Smaller Than the Current Number
    1486. XOR Operation in an Array
    1431. Kids With the Greatest Number of Candies
    1470. Shuffle the Array
    1480. Running Sum of 1d Array
    【STM32H7教程】第56章 STM32H7的DMA2D应用之刷色块,位图和Alpha混合
  • 原文地址:https://www.cnblogs.com/caizjian/p/3237320.html
Copyright © 2020-2023  润新知