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

    }
}

運行結果展示
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章