Apex virtual とextendsでクラスの拡張を実装する方法

環境
Apex Salesforce

構文
private | public | global
[virtual | abstract | with sharing | without sharing]
class ClassName [implements InterfaceNameList] [extends ClassName]
{
// クラスの処理内容
}
virtual 定義修飾子は、このクラスが拡張や上書きを許可することを宣言します。クラスが virtual として定義されていない場合、
override キーワードを使用したメソッドの上書きはできません。

使用例
Markerクラスの定義

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
public virtual class Marker {
public virtual void write() {
System.debug('テスト項目.');
}
public virtual Double discount() {
return .05;
}
}
public virtual class Marker { public virtual void write() { System.debug('テスト項目.'); } public virtual Double discount() { return .05; } }
public virtual class Marker {
    public virtual void write() {
        System.debug('テスト項目.');
    }

    public virtual Double discount() {
        return .05;
    }
}

Marker クラスを拡張する YellowMarker クラスを作成します。
// Markerクラスの拡張

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
public class YellowMarker extends Marker {
public override void write() {
System.debug('テスト1233.');
}
}
public class YellowMarker extends Marker { public override void write() { System.debug('テスト1233.'); } }
public class YellowMarker extends Marker {
    public override void write() {
        System.debug('テスト1233.');
    } 
}

 

IT

Posted by arkgame