我目前有一個類,我們稱之為 Person,有一個像這樣的構(gòu)造函數(shù)。public class Person{ private String name; public Person(String name) { this.name = name; System.out.println("This person is: "+getName()); } public String getName() { return this.name; } public void setName(String name) { this.name = name; }}然后我們用更具體的 Person 類型繼承該類,在本例中為 Employee。public class Employee extends Person{ private int id; public Employee(String name, int id) { super(name); this.id = id; System.out.println("This person is: "+getName()+", identified by #"+getId()); } public int getId() { return this.name; } public void setId(int id) { this.id = id; }}我想讓它在創(chuàng)建對象時 Employee 打印它自己的語句,但它同時打印來自 Person 和 Employee 的打印語句。如何覆蓋此語句以防止發(fā)生這種情況?有沒有更好的打印到控制臺的方法來防止這種情況發(fā)生?
3 回答

阿波羅的戰(zhàn)車
TA貢獻1862條經(jīng)驗 獲得超6個贊
當(dāng)您調(diào)用 時super
,將調(diào)用父級的構(gòu)造函數(shù)。無法避免:這就是super
目的。
如果您想println
在創(chuàng)建對象時調(diào)用不同的s,則必須將其println
放在構(gòu)造函數(shù)之外。一個不錯的選擇是使用構(gòu)建器或工廠模式,toString
在Person
和Employee
類中覆蓋,并toString
從構(gòu)建器或工廠調(diào)用。
添加回答
舉報
0/150
提交
取消