問題
開発者は、PaymentProcessorインタフェースで定義されている支払いに準拠した小切手処理支払機能を提供するCheckPaymentProcessorクラスを実装する必要があります。
public interface PaymentProcessor {
void pay(Decimal amount);
}
PaymentProcessorインタフェースクラスを使用する正しい実装はどれですか。
A
Public class CheckPaymentProcessor extends PaymentProcessor {
public void pay(Decimal amount) {
// 実装の詳細
}
}
B
public class CheckPaymentProcessor extends PaymentProcessor {
public void pay(Decimal amount);
}
C
public class CheckPaymentProcessor implements PaymentProcessor {
public void pay(Decimal amount) {
// 実装の詳細
}
}
D
public class CheckPaymentProcessor implements PaymentProcessor {
public void pay(Decimal amount);
}
正解
C
解説
問題のポイントを以下にまとめます。
extends
とimplements
の違い:extends
キーワードはクラスの継承に使用され、継承されたクラスは親クラスのプロパティやメソッドを継承します。一方、implements
キーワードはインターフェースの実装に使用され、クラスはインターフェースで定義されたすべてのメソッドを具体的に実装する必要があります。- インターフェースの実装: インターフェースを実装するクラスは、インターフェースに定義されている全てのメソッドを実装する必要があります。これは、インターフェースが具体的な実装を持たないメソッドのシグネチャを提供するため、実装クラスがこれらのメソッドに具体的な機能を提供することを意味します。
それぞれの選択肢の理由について説明します。
A
public class CheckPaymentProcessor extends PaymentProcessor {
public void pay(Decimal amount) {
// 実装の詳細
}
}
これは不正解です。Apexでは、extends
キーワードはクラスの継承に使用されますが、インターフェースには使用されません。インターフェースを実装する際にはimplements
キーワードを使用します。
B
public class CheckPaymentProcessor extends PaymentProcessor {
public void pay(Decimal amount);
}
これは不正解です。こちらもインターフェースの実装にはimplements
を使用する必要があります。また、メソッドの宣言だけではなく、具体的な実装(中括弧内のコード)が必要です。
C
public class CheckPaymentProcessor implements PaymentProcessor {
public void pay(Decimal amount) {
// 実装の詳細
}
}
これは正解です。この選択肢は、インターフェースPaymentProcessor
を正しく実装しています。メソッドpay
には、具体的な実装(ここでは空の実装)が提供されています。
D
public class CheckPaymentProcessor implements PaymentProcessor {
public void pay(Decimal amount);
}
これは不正解です。インターフェースのメソッドを実装する際には、メソッドの本体(実装)が必要です。この選択肢はメソッドの実装を提供していません。
次の問題へ
【Salesforce 認定Platformデベロッパー】試験対策:第212問
問題 データクリーンアップ戦略の一環として、AW Computing社は、関連するアカウントが削除されたときに、関連する商談レコードを自動的に削除したいと考えています。こ…
前の問題へ
【Salesforce 認定Platformデベロッパー】試験対策:第210問
問題 Universal Containers社は、商談がClosed Wonのフェーズに達したときに、商談を編集できないようにロックしたいと考えています。これを達成するために開発者が使用…
1問目から復習する
【Salesforce 認定Platformデベロッパー】試験対策:第1問
問題 デバッグログに書き込まれるときのxの値は何ですか。 Integer x = 0; do { x = 1; x++; } while (x < 1); System.debug(x); 0 1 2 3 正解 0 1 2 3 解説 デバッ…
コメント