DEV Community

TANIAOKA, Akihiro
TANIAOKA, Akihiro

Posted on

12章32

このコードは正しいです。抽象クラス Item には、一つの抽象メソッド calcPrice と、一つの具体的なメソッド print が含まれています。この構文は問題ありません。具体的なメソッド print には実装が含まれており、抽象メソッド calcPrice には abstract キーワードが付いています。

最終的なコードは以下の通りです:

abstract class Item {
    public abstract int calcPrice(Item item);
    public void print(Item item) { 
        /* do something */ 
    }
}
Enter fullscreen mode Exit fullscreen mode

この形式であれば、抽象クラスの定義として正しく、Javaコンパイラもエラーを出さないでしょう。

追記

はい、このコードにはいくつかの間違いがあります。抽象クラス Item には抽象メソッドが含まれていますが、抽象メソッドには abstract キーワードが必要です。また、抽象メソッドは実装を持たないため、セミコロンで終わる必要があります。

修正したコードは以下のようになります:

abstract class Item {
    public abstract int calcPrice(Item item);
    public abstract void print(Item item);
}
Enter fullscreen mode Exit fullscreen mode

このように、メソッドの前に abstract キーワードを追加し、メソッドの中身を削除してセミコロンで終わるようにします。

Top comments (0)