014-006-009

superによるメソッド呼び出し

初級

問題説明

superによるメソッド呼び出し

この問題では: PersonクラスとEmployeeクラスを作成し、Employeegreet()メソッド内でsuper.greet()を呼び出して親クラスの処理を再利用するプログラムを作成します。

学習目標: オーバーライドしたメソッド内でsuper.メソッド名()を使って親クラスのメソッドを呼び出す方法を理解する

概要

サブクラスでメソッドをオーバーライドした際、親クラスの処理を完全に置き換えるのではなく、親クラスの処理に追加の処理を加えたい場合があります。super.メソッド名()を使うことで、オーバーライドしたメソッド内から親クラスの元のメソッドを呼び出すことができます。

仕様

Personクラス

  • String nameフィールドを持つ
  • コンストラクタPerson(String name)で初期化する
  • greet()メソッドで"Hello, I am <name>."を出力する

Employeeクラス(Personを継承)

  • String roleフィールドを追加する
  • コンストラクタEmployee(String name, String role)super(name)を呼び出し、roleを初期化する
  • greet()をオーバーライドし、まずsuper.greet()を呼び、次に"My role is <role>."を出力する

Mainクラス

  • Employeeオブジェクトをnew Employee("Tanaka", "Engineer")で作成する
  • greet()を呼び出す

出力形式

Hello, I am Tanaka.
My role is Engineer.

コードを実行してみませんか?

この問題のコードエディタと実行機能を使用するには、ログインしてください。

アカウントをお持ちでない方

新規登録