toString方法
1 当打印一个对象的引用时,默认调用的就是这个对象的toString方法
2 当对象所在的类没有重写Object的toString方法,返回此对象所在的类的堆空间和实体的首地址值
3 当重写了以后,调用自己的toString方法,常常将对象的属性值返回
package lianxi3; public class Colleague { private String name; private String department;//public时子类可以直接输出该属性 public Colleague() { name = "Xiaoli"; department = "信息中心"; } public Colleague(String name, String department) { super(); this.name = name; this.department = department; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getDepartment() { return department; } public void setDepartment(String department) { this.department = department; } }
package lianxi3; public class Friend extends Colleague { private String relation; public Friend() { // super(); relation = "VeryGood"; } public Friend(String relation) { // super(); this.relation = relation; } public String getRelation() { return relation; } public void setRelation(String relation) { this.relation = relation; } // 手动生成 // public String toString() { // return "name:"+name+"\tdepartment:"+department+"relation:"+relation; // //当父类属性是public可以用 // return // "name:"+super.getName()+"\tdepartment:"+super.getDepartment()+"relation:"+relation; // } // 自动生成 @Override public String toString() { return "Friend [relation=" + relation + ", getDepartment()=" + getDepartment() + ", getName()=" + getName() + "]";// 子类中继承了父类所有public方法,直接调用 } }
package lianxi3; public class TestToString { /** * @param args */ public static void main(String[] args) { Colleague f = new Friend(); System.out.println(f); //lianxi3.Friend@dc8569 //--->name:Xiaoli department:信息中心relation:VeryGood System.out.println(f.toString()); //lianxi3.Friend@dc8569 //--->name:Xiaoli department:信息中心relation:VeryGood System.out.println(f.getName()); // } }