用學生的輸出爲例子,子類繼承父類,然後在子類中新定義一個屬性並可以給父類屬性賦值,以及重寫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);
}
}
運行結果展示