インタフェース:
http://ufcpp.net/study/csharp/oo_interface.html
問題集:
http://ufcpp.net/study/csharp/exercise.html#ex_if1
抽象クラス
http://ufcpp.net/study/csharp/oo_abstract.html
抽象クラスとインターフェイスの違い
抽象クラスとインターフェイスは、派生クラスで実装するという点で似ていますが、 次のような違いがあります。 全体に、その意味を重視して簡明にした感じでしょうか。
抽象クラスは次のように何度も継承できますが、 インターフェイスは一度しか継承できません。
abstract class ClassA {
abstract function methodA();
}
//抽象クラスを継承
class ClassB extends ClassA {
function methodA() { print("A"); }
}
//さらに継承
class ClassC extends ClassB {
function methodB() { print("B"); }
}
var c : ClassC = new ClassC();
c.methodA(); //A
c.methodB(); //B
抽象クラスは多重継承できませんが、インターフェイスは可能です。
interface IntA {
function methodA();
}
interface IntB {
function methodB();
}
//2つのインターフェイスを継承
class ClassA implements IntA, IntB {
function methodA() { print("A"); }
function methodB() { print("B"); }
}
var a : ClassA = new ClassA();
a.methodA(); //A
a.methodB(); //B
あと、抽象クラスは実装を含むことができますが、 インターフェイスは実装が一切あってはいけません。
0 件のコメント:
コメントを投稿