重写equals和toString例子

public class TestTeacher {
	public static void main(String[] args) {
		Person p1 = new Person("A");
		Person x = new Person("f");           /////////////////////
		Person p2 = new Person("B","shanghai");
		Person p3 = new Person("A");
		
		
		Student s1 = new Student("C","S1");
		Student s2 = new Student("C","shanghai","S2");
		
		System.out.println(p1.equals(p3)); 
		System.out.println(p1==p3);                  //验证类中equals的重写的实现
		System.out.println("person的toString验证结果是"+x);  //验证toString的重写
		System.out.println(p1.info());
		System.out.println(p2.info());
		System.out.println(s1.info());
		System.out.println(s2.info());
		
		Teacher t1 = new Teacher("D","Professor");
		System.out.println(t1.info());
	}
}

//创建Person类
class Person {
	
	//定义成员变量
	private String name;
	private String location;
	
	//Person构造方法
	Person(String name) {
		this.name = name;
		location = "beijing";	
	}
	
	//Person构造方法重载
	Person(String name,String location) {
		this.name = name;
		this.location = location;
	}
	
	//Person普通方法
	public String info() {
		return "name:"+name+"location"+location;
	}
	
	//Person重写 equals方法
	public boolean equals(Object obj) {
		if(obj == null) return false;
		else {
			if(obj instanceof Person) {
				Person p = (Person)obj;
				if(this.name == name && this.location == location) {
					return true;
				}
			}
		}
		return false;
	}
	
	//Person重写toString方法
	public String toString() {
		return "I'm a cool Person";
	}
}


//子类class继承父类定义
class Teacher extends Person {
	private String capital; //定义成员变量
	
	//Teacher构造方法
	Teacher(String name,String capital) {
		this(name,"beijing",capital);
	}
	
	//Teacher构造方法重载
	Teacher(String n,String l,String capital) {
		super(n,l);
		this.capital = capital;
		
	}
	
	//Teacher普通方法
	public String info() {
		return super.info()+"capital:"+capital;
	}
}











//class继承基类
class Student extends Person{
	private String school;
	
	//student构造方法
	Student(String name,String school) {
		this(name,school,"beijing");
	}
	
	//student构造方法重载
	Student(String n,String l,String school) {
		super(n,l);
		this.school = school;
	}
	
	//普通方法
	public String info() {
		return super.info()+"school: "+school;
	}
}

 

posted @ 2019-07-29 17:29  水果、、  阅读(274)  评论(0编辑  收藏  举报