java子类继承父类重写tostring和重写equals方法

以你之姓@ 2023-05-21 10:26 114阅读 0赞

用学生的输出为例子,子类继承父类,然后在子类中新定义一个属性并可以给父类属性赋值,以及重写tostring和重写equals方法。
在这里插入图片描述
demo测试

  1. package Student;
  2. public class demo {
  3. public static void main(String[] args) {
  4. // TODO Auto-generated method stub
  5. Undergraduate s1 = new Undergraduate("张三", 30, "专科");
  6. Undergraduate s2 = new Undergraduate("张三", 30, "本科");
  7. Undergraduate s3 = new Undergraduate("张三", 30, "本科");
  8. System.out.println(s1.equals(s2));
  9. System.out.println(s3.equals(s2));
  10. System.out.println(s1);
  11. System.out.println(s2);
  12. System.out.println(s3);
  13. }
  14. }

父类定义属性

  1. package Student;
  2. public class Student {
  3. public String name;
  4. public int age;
  5. public Student() {
  6. // TODO Auto-generated constructor stub
  7. }
  8. public Student(String name, int age) {
  9. this.name = name;
  10. this.age = age;
  11. }
  12. public void show() {
  13. System.out.println(name + "," + age);
  14. }
  15. }

子类定义新属性,重写函数

  1. package Student;
  2. public class Undergraduate extends Student {
  3. public String degrre;
  4. public Undergraduate(String name, int age, String degrre) {
  5. super(name, age);
  6. this.degrre = degrre;
  7. }
  8. @Override
  9. public int hashCode() {
  10. final int prime = 31;
  11. int result = 1;
  12. result = prime * result + ((degrre == null) ? 0 : degrre.hashCode());
  13. return result;
  14. }
  15. @Override
  16. public boolean equals(Object obj) {
  17. if (this == obj)
  18. return true;
  19. if (obj == null)
  20. return false;
  21. if (getClass() != obj.getClass())
  22. return false;
  23. Undergraduate other = (Undergraduate) obj;
  24. if (degrre == null) {
  25. if (other.degrre != null)
  26. return false;
  27. } else if (!degrre.equals(other.degrre))
  28. return false;
  29. return true;
  30. }
  31. @Override
  32. public String toString() {
  33. return "degrre=" + degrre + ", name=" + name + ", age=" + age + "";
  34. }
  35. public void show() {
  36. System.out.println(name + "," + degrre + "," + age);
  37. }
  38. }

运行结果展示
在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,114人围观)

还没有评论,来说两句吧...

相关阅读