インターフェイスのJava8デフォルトメソッド
Java 8では、インターフェースにデフォルトのメソッド実装の新しい概念が導入されています。この機能は下位互換性のために追加されているため、古いインターフェースを使用してJava8のラムダ式機能を活用できます。
たとえば、「List」または「Collection」インターフェースには「forEach」メソッド宣言がありません。したがって、このようなメソッドを追加すると、コレクションフレームワークの実装が壊れてしまいます。 Java 8ではデフォルトのメソッドが導入されているため、List / CollectionインターフェースはforEachメソッドのデフォルトの実装を持つことができ、これらのインターフェースを実装するクラスは同じものを実装する必要はありません。
例
public class Java8Tester { public static void main(String args[]) { Vehicle vehicle = new Car(); vehicle.print(); } } interface Vehicle { default void print() { System.out.println("I am a vehicle!"); } static void blowHorn() { System.out.println("Blowing horn!!!"); } } interface FourWheeler { default void print() { System.out.println("I am a four wheeler!"); } } class Car implements Vehicle, FourWheeler { public void print() { Vehicle.super.print(); FourWheeler.super.print(); Vehicle.blowHorn(); System.out.println("I am a car!"); } }
出力
I am a vehicle! I am a four wheeler! Blowing horn!!! I am a car!
-
Javaのデフォルトメソッドを使用してダイヤモンド問題を解決する方法
継承 1つのクラスが他のクラスのプロパティを継承する2つのクラス間の関係です。この関係は、extendsキーワードを使用して-として定義できます。 public class A extends B{} プロパティを継承するクラスはサブクラスまたは子クラスと呼ばれ、プロパティを継承するクラスはスーパークラスまたは親クラスです。 継承では、スーパークラスメンバーのコピーがサブクラスオブジェクトに作成されます。したがって、サブクラスオブジェクトを使用すると、両方のクラスのメンバーにアクセスできます。 多重継承とは、1つのクラスが複数のクラスのプロパティを継承することです。言い換えると、多重継承
-
Java 9でJShellのデフォルトエディタを変更するにはどうすればよいですか?
JShell REPLを実装します (Read-Evaluate-Print Loop)コマンドラインからコードを読み取ります 、指定されたスニペットを評価し、結果を出力します。 JShellでは、JShellエディターパッドを使用して、デフォルトのJShellエディターからコードを編集できます。 。 「/set」も使用できます 別のエディタを定義するためにデフォルトのエディタを変更するコマンド。「/edit」を起動するとき コマンド、このエディターを使用できます。この操作を実行するには、 / set editor [editor]を起動するだけです。 コマンド。 メモ帳を設定するとし