【Salesforce 認定Platformデベロッパー】試験対策:第215問

問題

開発者は、既存のPaymentクラスの実装を提供すCreditCardPaymentクラスを作成する必要があります。

public virtual class Payment { 
    public virtual void makePayment(Decimal amount) { 
        /*implementation*/
    } 
}

正しい実装はどれですか。

A

public class CreditCardPayment extends Payment {
    public virtual void makePayment(Decimal amount) { 
        /*implementation*/ 
    }
}

B

public class CreditCardPayment implements Payment {
    public override void makePayment(Decimal amount) { 
        /*implementation*/ 
    }
}

C

public class CreditCardPayment implements Payment {
    public virtual void makePayment(Decimal amount) { 
        /*implementation*/ 
    }
}

D

public class CreditCardPayment extends Payment {
    public override void makePayment(Decimal amount) { 
        /*implementation*/ 
    }
}

正解

D

解説

それぞれの選択肢の理由について説明します。

A

これは不正解です。makePaymentメソッドは基底クラスでvirtualとして定義されていますが、派生クラスで再定義する際にはoverrideキーワードを使用する必要があります。

public class CreditCardPayment extends Payment {
    public virtual void makePayment(Decimal amount) { 
        /*implementation*/ 
    }
}

B

これは不正解です。Paymentはクラスであり、インターフェースではありません。そのため、implementsキーワードではなく、extendsキーワードを使用する必要があります。

public class CreditCardPayment implements Payment {
    public override void makePayment(Decimal amount) { 
        /*implementation*/ 
    }
}

C

これは不正解です。前述の通り、Paymentはインターフェースではなくクラスです。また、virtualキーワードは使用できません。派生クラスでメソッドを再定義する場合、overrideキーワードを使用します。

public class CreditCardPayment implements Payment {
    public virtual void makePayment(Decimal amount) { 
        /*implementation*/ 
    }
}

D

これは正解です。。CreditCardPaymentクラスはPaymentクラスを拡張しており、makePaymentメソッドをoverrideして再定義しています。これにより、基底クラスのメソッドを正しくオーバーライドしています。

public class CreditcardPayment extends Payment {
    public override void makePayment(Decimal amount) { 
        /*implementation*/ 
    }
}

次の問題へ

前の問題へ

1問目から復習する

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

雇われのシステムエンジニアです。
普段は車載ECUのセキュリティー分野に従事しております。

■保有資格
Salesforce 認定 アドミニストレーター
Salesforce 認定 Platform アプリケーションビルダー
Salesforce 認定 Platform デベロッパー

コメント

コメントする

目次