java子类继承父类重写tostring和重写equals方法
用学生的输出为例子,子类继承父类,然后在子类中新定义一个属性并可以给父类属性赋值,以及重写tostring和重写equals方法。
demo测试
package Student;
public class demo {
public static void main(String[] args) {
// TODO Auto-generated method stub
Undergraduate s1 = new Undergraduate("张三", 30, "专科");
Undergraduate s2 = new Undergraduate("张三", 30, "本科");
Undergraduate s3 = new Undergraduate("张三", 30, "本科");
System.out.println(s1.equals(s2));
System.out.println(s3.equals(s2));
System.out.println(s1);
System.out.println(s2);
System.out.println(s3);
}
}
父类定义属性
package Student;
public class Student {
public String name;
public int age;
public Student() {
// TODO Auto-generated constructor stub
}
public Student(String name, int age) {
this.name = name;
this.age = age;
}
public void show() {
System.out.println(name + "," + age);
}
}
子类定义新属性,重写函数
package Student;
public class Undergraduate extends Student {
public String degrre;
public Undergraduate(String name, int age, String degrre) {
super(name, age);
this.degrre = degrre;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((degrre == null) ? 0 : degrre.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Undergraduate other = (Undergraduate) obj;
if (degrre == null) {
if (other.degrre != null)
return false;
} else if (!degrre.equals(other.degrre))
return false;
return true;
}
@Override
public String toString() {
return "degrre=" + degrre + ", name=" + name + ", age=" + age + "";
}
public void show() {
System.out.println(name + "," + degrre + "," + age);
}
}
运行结果展示
还没有评论,来说两句吧...