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

    }
}

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

发布了20 篇原创文章 · 获赞 6 · 访问量 992

猜你喜欢

转载自blog.csdn.net/zhangyunwei_Blog/article/details/105643881