1. ホーム
  2. java

[解決済み] なぜJavaのインターフェースメソッドをabstractと宣言するのですか?

2022-05-10 11:04:41

質問

今日、Eclipse の "pull interface" リファクタリング機能を使って、既存のクラスをベースにしたインターフェイスを作成しました。ダイアログ ボックスでは、新しいインターフェイスのすべての新しいメソッドを "abstract" メソッドとして作成するよう提案されました。

その利点は何でしょうか?

インターフェースメソッドをabstractと宣言していいというのは、余計なお世話で特に推奨されていない無害な機能だと思っていたのですが、どうなんでしょうか?

なぜEclipseはそのようなスタイルをサポートするのでしょうか、あるいはなぜ誰かが自発的にそのようなスタイルを選ぶのでしょうか?

明確化します。私は、なぜインターフェイス メソッドが抽象的であるかを尋ねているのではありません。インターフェイスにある場合は、いずれにせよ抽象的であるため、なぜ明示的に抽象的であるとマークすることを選択するのかについて尋ねているのです。

どのように解決するのですか?

によると Java言語仕様 となっており abstract キーワードは廃止され,もはや使用されるべきではない。(9.1.1.1項)

とはいえ、Javaの後方互換性の傾向から、私は本当に abstract キーワードが存在するかどうかの違いはないでしょう。