2016-08-25 4 views
4

を拡張するためのインタフェース:ブロック私ができるクラスで以来として

public final class Foo{} 

WICHには複数のクラスを意味することができ、例えばその... Fooクラスを拡張Stringクラスはfinalクラスなので、カスタムクラスではクラスStringを拡張することはできません。

インターフェイスで同じことをしないようにするにはどうすればよいですか?

私が行う場合

public interface ISome{ 
    void fly(); 
} 

私は

class A implements ISome {} 

しかしが

public interface IHouse extends ISome{ 
    void fly(); 
} 

この

public final interface ISome{} 
をやっていることを遮断することを可能にしたいと思います

は意味がない...とのようなコンパイルエラーをもたらす:あなたはできません

Illegal modifier for the interface 

答えて

4

たぶんは、Javaの設計者はこれまで、このための適切なユースケースがあるだろうとは思いませんでした:あなたはinterfaceを延長することにしたくないならば、本当にあなたが具体的なclassで直接これらの関数を宣言するべきです。唯一の純粋仮想関数から成る、そしてあなたは、このようなfriend船などの技術を有する非拡張性を強制することができます - あなたインタフェースは大会の詳細です。この言語のようにC++でこれを達成することができ、言っ

関連する問題