1.阅读下面的Person类源代码,并回答下面的问题。 --------程序清单------------------------------------------------------------------------------------------------------------ public class Person { private String name; // 名字 public Person() { name = ""; } public Person(String initialName) { set(initialName); } public void setName(String newName) { set(newName); } public String getName() { return (name.isEmpty() ? "N/A" : name); } public final boolean hasSameName(Person otherPerson) { return name.equals(otherPerson.name); } private void set(String newName) { name = ((newName == null) ? "" : newName.trim()); } @Override public String toString() { return "姓名: " + getName(); } public static void showAll(Person[] people) { for (Person p : people) { System.out.println(p); } } } --------------------------------------------------------------------------------------------------------------------------------- (a)(5分)Person类中的toString方法是重写哪个类里的toString方法? (b)(5分)Person类中的哪些方法不能被它的子类重写?请说明你的理由(没有理由不给分)。 (5分)要使Person类不能被其他类继承,需要使用哪个关键字修饰该类?
时间: 2023-08-15 08:34:13 浏览: 86
关于Person的类例子
(a) Person类中的toString方法是重写Object类里的toString方法。
(b) Person类中的getName方法和hasSameName方法都是final方法,不能被它的子类重写。getName方法是因为它是返回name字段的值,如果被子类重写可能会导致出现意料之外的错误;hasSameName方法是因为它是判断两个Person对象的name字段是否相同,如果被子类重写可能会导致判断出错。
(c) 要使Person类不能被其他类继承,可以使用final关键字修饰该类。例如:public final class Person。
阅读全文