国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

你真的會用ABAP, Java和JavaScript里的constructor么?

huaixiaoz / 991人閱讀

摘要:如果里調用了一個成員方法,這個方法被子類了,當初始化一個子類實例時,父類的構造函數被的調用,此時父類構造函數的上下文里調用的成員方法,是父類的實現還是子類的實現你能不用運行代碼,就能準確說出這些語句會打印什么出來呢測試測試結果測試

如果constructor里調用了一個成員方法,這個方法被子類override了,當初始化一個子類實例時,父類的構造函數被的調用,此時父類構造函數的上下文里調用的成員方法,是父類的實現還是子類的實現?
你能不用運行代碼,就能準確說出這些語句會打印什么出來呢?

ABAP
class ZCL_SUPER definition
  public
  create public .
public section.
  methods CONSTRUCTOR .
  methods SET_I
    importing
      !IV_I type INT4 .
protected section.
private section.
  data MV_SUPER type INT4 .
ENDCLASS.
CLASS ZCL_SUPER IMPLEMENTATION.
  method CONSTRUCTOR.
    me->set_i( 100 ).
  endmethod.
  method SET_I.
    me->mv_super = iv_i.
  endmethod.
ENDCLASS.
class ZCL_SUB definition
  public
  inheriting from ZCL_SUPER
  final
  create public .
public section.
  methods PRINT .
  methods SET_I
    redefinition .
protected section.
private section.
  data MV_SUB type I value 1 ##NO_TEXT.
ENDCLASS.
CLASS ZCL_SUB IMPLEMENTATION.
  method PRINT.
    WRITE: / " sub:" , mv_sub.
  endmethod.
  METHOD set_i.
    super->set_i( iv_i = iv_i ).
    me->mv_sub = iv_i.
    WRITE: / "mv_sub assigned by: " , iv_i.
  ENDMETHOD.
ENDCLASS.

測試:

NEW zcl_sub( )->print( ).

測試結果:sub: 1

Java
public class SuperClass {

    private int mSuperX;

    public SuperClass() {
        setX(99);
    }

    public void setX(int x) {
        mSuperX = x;
    }
}
public class SubClass extends SuperClass {

    private int mSubX = 1;

    public SubClass() {}

    @Override
    public void setX(int x) {
        super.setX(x);
        mSubX = x;
        System.out.println("SubX is assigned " + x);
    }

    public void printX() {
        System.out.println("SubX = " + mSubX);
    }
}

test:

public static void main(String[] args) {
        SubClass sc = new SubClass();
        sc.printX();
    }

測試結果:

JavaScript
function SuperClass(){
    this.setX(99);
}

SuperClass.prototype = {
    mSuperX : 0,
    setX : function(x){
         this.mSuperX = x;
    }
};
function SubClass(){  
    SuperClass.call(this);  
    this.mSubX = 1;
}  

SubClass.prototype = new SuperClass();  

SubClass.prototype.setX = function(x){
        SuperClass.prototype.setX(x);
        this.mSubX = x;
        console.log("SubX is assigned " + x);
};

SubClass.prototype.print = function(){
    console.log("SubX: " + this.mSubX);
}

test:

var sub = new SubClass();
sub.print();

測試結果:

詳細分析在我的SAP community博客里: A reminder for using constructor in OO world

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/52163.html

相關文章

  • 真的會用ABAP, JavaJavaScript里的constructor?

    摘要:如果里調用了一個成員方法,這個方法被子類了,當初始化一個子類實例時,父類的構造函數被的調用,此時父類構造函數的上下文里調用的成員方法,是父類的實現還是子類的實現你能不用運行代碼,就能準確說出這些語句會打印什么出來呢測試測試結果測試 如果constructor里調用了一個成員方法,這個方法被子類override了,當初始化一個子類實例時,父類的構造函數被的調用,此時父類構造函數的上下文里...

    yeooo 評論0 收藏0
  • 真的會用ABAP, JavaJavaScript里的constructor?

    摘要:如果里調用了一個成員方法,這個方法被子類了,當初始化一個子類實例時,父類的構造函數被的調用,此時父類構造函數的上下文里調用的成員方法,是父類的實現還是子類的實現你能不用運行代碼,就能準確說出這些語句會打印什么出來呢測試測試結果測試 如果constructor里調用了一個成員方法,這個方法被子類override了,當初始化一個子類實例時,父類的構造函數被的調用,此時父類構造函數的上下文里...

    luxixing 評論0 收藏0
  • ABAP程序給佛祖開過光?來試試Jerry這個小技巧

    摘要:實現步驟非常簡單,在標準程序的內創建一個隱式增強。禁止在測試服務器和生產服務器使用否則由此造成的一切負面后果,本人及概不負責。 最近Jerry在忙一個項目,技術棧換成了nodejs平臺,語言換成了JavaScript,因為趕項目進度,一直沒時間更新公眾號。感謝大家的支持,關注人數還是慢慢地增長到了3000。 showImg(https://segmentfault.com/img/re...

    SQC 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<