Salesforce Apexと抽象クラス(abstract)のサンプル

Salesforce Apex

概要
abstractメソッド
特徴
abstractメソッドは、実装(具体的なコードブロック)を持ちません。
abstractメソッドは、abstractクラス内でのみ定義することができます。
制約
abstractクラスを継承するサブクラスは、そのabstractメソッドを必ず実装しなければなりません。

クラスの概要
CftEmployee.cls (継承元クラス)
CftManager.cls (CftEmployeeクラスを継承するサブクラス)
CftPartTime.cls (CftEmployeeクラスを継承するサブクラス)
CftMain.cls (実行クラス)

サンプルコード
1.抽象クラスの定義

public abstract with sharing class CftEmployee {

    /**
     * コンストラクタ
     */
    public CftEmployee() {
      
    }

    private String name;
    
    // 名前のゲッタ
    public String getName() {
        return name;
    }
    
    // 名前のセッタ
    public void setName(String name) {
        this.name = name;
    }
    
    // 表示メソッド
    public abstract void show();
}

2.CftManagerクラスの定義

public with sharing class CftManager extends CftEmployee {

    /**
     * コンストラクタ
     */
    public CftManager() {

    }

    // 表示メソッド
    public override void show() {
        System.debug('社員123');
    }
}

3.CftPartTimeクラスの定義

public with sharing class CftPartTime extends CftEmployee {

    /**
     * コンストラクタ
     */
    public CftPartTime() {
        
    }

    // 表示メソッド
    public override void show() {
        System.debug('アルバイト');
    }
}

4.CftMain側クラスの定義

public with sharing class CftMain {
    
    /**
     * コンストラクタ
     */
    public CftMain() {
        CftEmployee empA;
        CftEmployee empB;
        
        // 1つ目は社員
        empA = new CftManager();
        // 2つ目はアルバイト
        empB = new CftPartTime();
        
        // 表示メソッドの実行
        empA.show();
        empB.show();
    }
}

 

IT

Posted by arkgame