この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

super キーワードの使用

super キーワードは、仮想クラスまたは抽象クラスから拡張されるクラスで使用できます。super を使用することによって、親クラスのコンストラクタおよびメソッドを上書きできます。

たとえば、次の仮想クラスがあるとします。
1public virtual class SuperClass {
2    public String mySalutation;
3    public String myFirstName;
4    public String myLastName;
5
6    public SuperClass() {
7
8        mySalutation = 'Mr.';
9        myFirstName = 'Carl';
10        myLastName = 'Vonderburg';
11    }
12
13    public SuperClass(String salutation, String firstName, String lastName) {
14
15        mySalutation = salutation;
16        myFirstName = firstName;
17        myLastName = lastName;
18    }
19
20    public virtual void printName() {
21
22        System.debug('My name is ' + mySalutation + myLastName);
23    }
24
25   public virtual String getFirstName() {
26       return myFirstName;
27   }
28}
Superclass を拡張し、printName メソッドを上書きする次のクラスを作成できます。
1public class Subclass extends Superclass {
2  public override void printName() {
3        super.printName();
4        System.debug('But you can call me ' + super.getFirstName());
5    }
6}

Subclass.printName をコールした場合に期待される出力は、「My name is Mr. Vonderburg. But you can call me Carl」です。

super を使用して、コンストラクタを呼び出すこともできます。次のコンストラクタを SubClass に追加します。
1public Subclass() {
2    super('Madam', 'Brenda', 'Clapentrap');
3}

Subclass.printName の期待される出力は、「My name is Madam Clapentrap. But you can call me Brenda」です。

super キーワード使用のベストプラクティス

  • virtual クラスまたは abstract クラスから拡張されるクラスのみが super を使用できます。
  • override キーワードで指定されているメソッドでのみ super を使用できます。