インタフェース (抽象型)


 (: interface) JavaC# (implement) [1]

概要

編集

C++C++JavaC#[1]



JavaC#

便

JavapublicJavaextends使implements使extends使
// 「飛ぶ」ことができるもの全般を表すインタフェース。
interface Flyable {
    void fly();
}

// 動物の抽象基底クラス。
abstract class Animal {
}

// 鳥類の抽象基底クラス。空を飛べないダチョウやペンギンも含まれる。
abstract class Bird extends Animal {
}

// 飛べる鳥類の抽象基底クラス。
abstract class FlyingBird extends Bird implements Flyable {
}

// ワシの具象クラス。
class Eagle extends FlyingBird {
    @Override
    public void fly() { System.out.println("Eagle.fly()"); }
}

// 哺乳類の抽象基底クラス。
abstract class Mammal extends Animal {
}

// 飛べる哺乳類の抽象基底クラス。
abstract class FlyingMammal extends Mammal implements Flyable {
}

// コウモリの具象クラス。
class Bat extends FlyingMammal {
    @Override
    public void fly() { System.out.println("Bat.fly()"); }
}

// 航空機の抽象基底クラス。自力で航行できないグライダーも含まれる。
abstract class Aircraft {
}

// エンジンを搭載した飛行機の具象クラス。
class Airplane extends Aircraft implements Flyable {
    @Override
    public void fly() { System.out.println("Airplane.fly()"); }
}

public class Main {
    public static void main(String[] args) {
        final Flyable[] flyables = {
            new Eagle(),
            new Bat(),
            new Airplane(),
        };
        for (final Flyable obj : flyables) {
            obj.fly();
        }
    }
}

Flyable

Javajava.lang.Enum

Java 8[2]Java 8(functional interface) 

C#JavapublicC# 7.xC# 8.0[3]C# 8.0I[4]C#Delphi (Object Pascal) 

C#System.ValueType[5]C#System.Enum

using使System.IDisposable[6]

C#GuidSystem.Runtime.InteropServices.GuidAttributeGUID.NET FrameworkCOMC++VBScript/JScriptCOM/OLECOM[7]

VB.NET

編集

C#の姉妹言語であるVisual Basic .NET (VB.NET) もインタフェースをサポートし、抽象メンバーのみを持つ参照型である点は同じだが、入れ子になった型は定義できるものの、定数や静的メンバー(共有メンバー)などの定義は許されない[8]

Delphi

編集

Delphi (Object Pascal) public[9]IInterface

C#DelphiC#Delphi[10]

 (UML)  (operation) [11]UML«interface»

その他の言語・技術

編集

C++publicJavaC#

Component Object Model (COM) COMIUnknownCOMCOMCOM.NET FrameworkWindows

脚注

編集

注釈

編集
  1. ^ 例えばオラクルの日本語ドキュメントでは「インタフェース」と表記されているが、マイクロソフトの日本語ドキュメントでは「インターフェイス」と表記されている。Googleの日本語ドキュメントでは「インターフェース」と表記されている。本記事では「インタフェース」で統一するものとする。

出典

編集

関連項目

編集