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(); } }