質問: Javaの学習を始めたばかりの初心者です。質問のしかたなど間違えていたらすみません。 抽象メソッドの宣言方法についての質問です。 抽象メソッドを宣言する場合、 ``` public abstract void run(); ``` のように宣言すると習いました。 通常のメソッドの宣言の場合、 ``` public void run(){ ... } ``` のように記述するので、なぜ ``` public abstract void run(){ } ``` のような記述ではなく、前者のように記述するのかに疑問を持ちました。 まだ慣れてないからだとは思いますが前者はなんとなくメソッドの実行というような印象を受けるので違和感があります。 そういうルールだと言われればそれまでですが、もし知識をお持ちの方がいれば教えていただきたいです。
回答: たいていの場合、{}と表記するとそのカッコの中には何らかの処理が記述されると考えられます。 しかし、抽象メソッドは処理は記述せず、このようなシグネチャのメソッドが存在するよということを後継のクラスに伝える役割を果たすだけでいいので、{}は不要で、;で終わってしまった方が分かりやすいとおもいませんか? また、例ではvoidなのでreturnを書く必要がありませんが、voidではない場合は下記ようがなくなりますね。