Java
 Computer >> コンピューター >  >> プログラミング >> Java

Javaのデフォルトメソッドをオーバーライドできますか?


インターフェース Javaのクラスはクラスに似ていますが、finalで静的な抽象メソッドとフィールドのみが含まれています。

Java8の静的メソッドとデフォルトのメソッドがインターフェースに導入されているため。 他の抽象メソッドとは異なり、これらのメソッドはデフォルトの実装を持つことができます。インターフェイスにデフォルトのメソッドがある場合、このインターフェイスをすでに実装しているクラスでそれをオーバーライド(本文を提供)する必要はありません。

つまり、実装クラスのオブジェクトを使用して、インターフェイスのデフォルトのメソッドにアクセスできます。

interface MyInterface{  
   public static int num = 100;
   public default void display() {
      System.out.println("display method of MyInterface");
   }
}
public class InterfaceExample implements MyInterface{
   public static void main(String args[]) {
      InterfaceExample obj = new InterfaceExample();
      obj.display();
   }
}

出力

display method of MyInterface

デフォルトのメソッドのオーバーライド

実装クラスからインターフェースのデフォルトメソッドをオーバーライドできます。

interface MyInterface{  
   public static int num = 100;
   public default void display() {
      System.out.println("display method of MyInterface");
   }
}
public class InterfaceExample implements MyInterface{
   public void display() {
      System.out.println("display method of class");
   }
   public static void main(String args[]) {
      InterfaceExample obj = new InterfaceExample();
      obj.display();
   }
}

出力

display method of class


  1. Javaのデフォルトメソッドを使用して菱形継承問題を解決するにはどうすればよいですか?

    継承 1つのクラスが他のクラスのプロパティを継承する2つのクラス間の関係です。この関係は、extendsキーワードを使用して-として定義できます。 public class A extends B{ } プロパティを継承するクラスはサブクラスまたは子クラスと呼ばれ、プロパティを継承するクラスはスーパークラスまたは親クラスです。 継承では、スーパークラスメンバーのコピーがサブクラスオブジェクトに作成されます。したがって、サブクラスオブジェクトを使用すると、両方のクラスのメンバーにアクセスできます。 複数の遺産: 利用可能な継承には、単一、マルチレベル、階層、複数、およびハイブリッドのさまざ

  2. JavaでJTextArea内の行番号を表示するにはどうすればよいですか?

    JTextArea JTextComponentのサブクラスです 複数行のテキストです テキストを表示したり、ユーザーがテキストを入力できるようにするコンポーネント。 JTextArea CaretListenerを生成できます カレット更新イベントをリッスンできるインターフェース。デフォルトでは、JTextAreaは行番号を表示しません。 Dを使用してコードをカスタマイズする必要があります ocumentListener インターフェイス。 例 import java.awt.*; import javax.swing.*; import javax.swing.event.*