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;
}
}