日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

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

發布時間:2023/12/19 javascript 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 你真的会用ABAP, Java和JavaScript里的constructor么? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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

ABAP

class ZCL_SUPER definitionpubliccreate public . public section.methods CONSTRUCTOR .methods SET_Iimporting!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 definitionpublicinheriting from ZCL_SUPERfinalcreate public . public section.methods PRINT .methods SET_Iredefinition . 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() {}@Overridepublic 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
要獲取更多Jerry的原創技術文章,請關注公眾號"汪子熙":

總結

以上是生活随笔為你收集整理的你真的会用ABAP, Java和JavaScript里的constructor么?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。