インターフェイス (interface) の比較
宣言
C++ |
class MyInterface
{
public:
virtual void Func() = 0;
};
※インターフェイスは、純粋仮想関数だけの抽象クラスと同義
|
C++/CLI |
interface class MyInterface
{
public:
void Func();
};
|
C# |
interface MyInterface
{
void Func();
}
※C#ではメンバは暗黙的にpublicとされるため、アクセス修飾子は不要
|
Java |
interface MyInterface
{
void Func();
}
|
継承 (inheritance)
C# |
interface SubInterface : MyInterface
{
}
|
Java |
interface SubInterface extends MyInterface
{
}
|
クラスの継承と考え方は同じです。
実装 (implement)
C++/CLI |
ref class MyClass : MyInterface
{
};
|
C# |
class MyClass : MyInterface
{
}
|
Java※1 |
class MyClass implements MyInterface
{
}
|
※1 Javaではインターフェイスの継承と実装を、キーワードを分けて明確に区別しています。
クラスの継承も同時に行う場合
インターフェイスの実装と同時にクラスの継承も行う場合には、その記述の順番に注意が必要です。
C# |
class クラス名 : 基本クラス, インターフェイス
{
}
※基本クラスを先に記述し、カンマで区切ります。
|
Java |
class クラス名 extends 基本クラス implements インターフェイス
{
}
※extends節を先に記述します。
|