09/07/27 15:26:04
>>47
BadGradeException を Student.java にってのは転載ミスだろ。
1.
16行目: george.printGrade();
george は Person クラスと宣言されているため、Person で宣言されているメソッドしか利用できない。
19行目: Student leader = martin;
leader は Student クラス、martin は Person クラスのオブジェクトであり、
Student は Person だが Person は Student ではないため。
2.
"Name: Jhon" <- 5行目 Person.print() が呼ばれ、名前を表示
"Age: 32" <- 6行目 Person.printAge() が呼ばれ、年齢を表示
"Name: Paul" <- 10行目 Student.print() から super.print() により Person.print() が呼ばれ、名前を表示
"Job: student" <- 10行目 Student.print() の super.print() の後、固定文字列を表示
"grade: 3" <- 11行目 Student.printGrade() が呼ばれ、学年を表示
"Age: 20" <- 12行目 Student.printAge() は無いが親クラスの Person.printAge() が呼ばれ、年齢を表示
"Name: George" <- 15行目 george は Person だが実体は Student のため、Student.print() が呼ばれ、名前を表示
"Job: student" <- 15行目 Student.print() の super.print() の後、固定文字列を表示
"5 is out of range." <- Student のコンストラクタ(10行目)で BadGradeException が発生し、25行目でキャッチされ、26行目で表示
※例外によりcatchに飛んだので、22行目の ringo.print()は実行されない。