5
Java 8インターフェイスメソッドで「最終」が許可されないのはなぜですか?
Java 8の最も便利な機能の1つは、defaultインターフェースの新しいメソッドです。それらが導入された理由は基本的に2つあります(他にもある場合があります)。 実際のデフォルト実装を提供します。例:Iterator.remove() JDK APIの進化を可能にする。例:Iterable.forEach() APIデザイナーの観点から、インターフェイスメソッドで他の修飾子を使用できるようにしたいと思っていましたfinal。これは、便利なメソッドを追加するときに役立ち、クラスの実装における「偶発的な」オーバーライドを防ぎます。 interface Sender { // Convenience method to send an empty message default final void send() { send(null); } // Implementations should only implement this method void send(String message); } 上記がSenderクラスの場合、すでに一般的な方法です。 abstract class Sender { // Convenience method to send an empty message final void …