ApexとJavaの違い クラスの継承について

Apex クラスと Java クラスの違い
メソッドおよびクラスはデフォルトで final です。
virtual 定義修飾子は、拡張や上書きを許可します。
override キーワードは、基本クラスメソッドを上書きするメソッドで
明示的に使用する必要があります。

使用例
1.Javaクラスの継承の書き方

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
//親クラス
public class Parent {
}
//子クラス
class Child extends Parent {
}
//親クラス public class Parent { } //子クラス class Child extends Parent { }
//親クラス
public class Parent {
}
//子クラス
class Child extends Parent {
}

2.Apexではデフォルトで継承を禁止する仕様となっているため、
それを許可する修飾子を追記する必要があります。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
//親クラス
public virtual class Parent {
}
//子クラス
class Child extends Parent {
}
//親クラス public virtual class Parent { } //子クラス class Child extends Parent { }
//親クラス
public virtual class Parent {
}
//子クラス
class Child extends Parent {
}

このように親クラスで「virtual」を宣言することで、そのクラスの継承を許可することが出来ます。

3.Apexでオーバーライドする側のメソッドにも「override」を使用して明示的にオーバーライドを宣言します。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
//親クラス
public virtual class Parent {
public virtual void action() {
}
}
//子クラス
class Child extends Parent {
public override void action() {
}
}
//親クラス public virtual class Parent { public virtual void action() { } } //子クラス class Child extends Parent { public override void action() { } }
//親クラス
public virtual class Parent {
    public virtual void action() {        
    }
}
//子クラス
class Child extends Parent {
    public override void action() {        
    }
}

 

Apex

Posted by arkgame