2016-11-29 10 views
0

キネシスストリーム実装されたクラスでsuperの使用は何ですか?

Class XYZ implements ABC { 
     XYZ(){ 
     super(); 
    } 
    } 

この場合、スーパーの使用は何であるの実行中に、私が遭遇したコードを以下に示しますか?

+0

ここではABCはインターフェイスです – Deepak

+7

ここでは使用しません。 –

+1

@OliverCharlesworth省略された場合、暗示されます。たぶん "冗長"はより良い説明です – Bohemian

答えて

1

superは、親クラスのconstructor,methodsおよびattributesを呼び出すために使用されます。この場合、スーパーはObjectクラスのコンストラクタを呼び出します。デフォルトでは、Javaではすべてのクラスのスーパークラスです。この場合、は冗長です。

+0

私はあなたが正しいとは確信していません。これは、インタフェースにデフォルトの実装が含まれているかどうかによって異なります。 – Rotem

0

サブクラスでのsuper()の使用は、スーパークラスコンストラクタを呼び出すことを意味します。 クラスXYZがインタフェースを実装している場合、コンストラクタの呼び出しには意味がありません。インタフェースには通常実装が含まれていないためです。 私はJava 8以降、インターフェイスにデフォルトの実装を追加できることを知っています。インターフェイスにのデフォルトのキーワードが含まれている場合、関連するメソッドまたはコンストラクタのデフォルトの実装を意味するメソッドまたはコンストラクタの前に。

Interface Method Declarationsについて詳しく読むことができます。

+0

インターフェイスには実装されたメソッドがあることを意味しますか? – Deepak

+0

はい、デフォルトの実装です。既存のバイナリとの互換性を損なうことはありません。 – Rotem

関連する問題