-6

10個のメソッドを持つインターフェースがありますが、クラスに実装するのはそのうちの5個だけであるとします。次に、そのクラスは抽象的である必要があります。そのようなクラスを抽象化せずに実装する方法はありますか?

4

3 に答える 3

1

いいえ。実装が不完全なクラスは、abstract として宣言する必要があります。直接インスタンス化することはできませんが、サブクラスを構築するための共通のベースとして機能できます。

これらすべてのポイントは、(インターフェイスによって定義された) オブジェクトでメソッドが呼び出されたときに、そのメソッドが実際に存在することをコンパイラが確認できることです。これは、Java の強力な型付けアプローチの一部です。

Java には「オプションのメソッド」という概念がありますが、これはかなり非公式です。UnsupportedOperationException をスローするダミーの実装を提供する必要があります。

于 2013-03-18T06:10:17.073 に答える
1

クラスがインターフェイスを実装する場合、インターフェイス内のすべてのメソッドが実装されることが保証されます。つまり、メソッドの内容を定義したくない場合は、いつでも UnsupportedOperationException をスローできます。

public void cats(){
   throw new UnsupportedOperationException();
}

要するに、実装するインターフェースで定義されたメソッドを宣言しないという方法はありません。しかし、それを回避する方法はありますが、非公式なものであっても.

于 2013-03-18T06:11:06.757 に答える
0

すべてのインターフェイス メソッドを実装する必要があります。クラスが抽象の場合、具体的なサブクラスを作成する人は誰でもメソッドを実装する必要があります。

于 2013-03-18T06:11:17.937 に答える