成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

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

luxixing / 769人閱讀

摘要:如果里調(diào)用了一個成員方法,這個方法被子類了,當(dāng)初始化一個子類實例時,父類的構(gòu)造函數(shù)被的調(diào)用,此時父類構(gòu)造函數(shù)的上下文里調(diào)用的成員方法,是父類的實現(xiàn)還是子類的實現(xiàn)你能不用運行代碼,就能準確說出這些語句會打印什么出來呢測試測試結(jié)果測試

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

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( ).

測試結(jié)果: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();
    }

測試結(jié)果:

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();

測試結(jié)果:

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

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/68983.html

相關(guān)文章

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

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

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

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

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

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

    SQC 評論0 收藏0

發(fā)表評論

0條評論

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