あなたは本当にABAP、JavaとJavaScriptのconstructorを使うことができますか?
8772 ワード
詳細
constructorでメンバーメソッドが呼び出された場合、このメソッドはクラスoverrideによって呼び出され、サブクラスインスタンスを初期化すると、親のコンストラクション関数が呼び出されます.このとき、親のコンストラクション関数のコンテキストで呼び出されるメンバーメソッドは、親の実装ですか、それとも子の実装ですか.コードを実行しなくても、これらの文が何を印刷するかを正確に言えますか?
ABAP
テスト:
テスト結果:sub:1
Java
test:
テスト結果:
JavaScript
test:
テスト結果:
私のSAP communityブログで詳しく分析します. A reminder for using constructor in OO world Jerryのオリジナル技術の文章をもっと入手するには、公衆番号「汪子熙」に注目するか、次のQRコードをスキャンしてください.
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 Jerryのオリジナル技術の文章をもっと入手するには、公衆番号「汪子熙」に注目するか、次のQRコードをスキャンしてください.