随便写了写,但是又知道了一个东西。
那就是方法重写不能在子类,若写在子类会报以下错误:
Method does not override method from its superclass
/*
继承extends、instanceof的使用、重写toString、equals;
*/
class Hero{
public String name;
public String useWeapons;
public Hero(String name, String useWeapons){
this.name = name;
this.useWeapons = useWeapons;
}
@Override
public String toString(){
return name + "use" + useWeapons;
}
/*
* 重写equals()
* 需求:在Hero类中重写,对比两个Hero对象,只要两个对象的name相同,就认为相等。*/
public boolean equals(Object obj){
if(obj != null){
if(obj instanceof Hero){
Hero Test = (Hero) obj;
if (Test.name == this.name){
return true;
}
}
}else {
return false;
}
return false;
}
}
class Skills extends Hero{
String Q;
String E;
String passive;
public Skills(String name, String useWeapons, String E, String Q, String passive) {
super(name, useWeapons);
this.E = E;
this.Q = Q;
this.passive = passive;
}
}
public class Main {
public static void main(String[] args){
Skills skills = new Skills("夜兰", "弓箭", "绳子", "骰子", "奔跑");
Hero heros = new Hero("夜兰", "弓箭");
System.out.println(skills instanceof Hero);
System.out.println(skills instanceof Skills);
System.out.println(skills instanceof Object);
System.out.println(skills.equals(heros));
System.out.println(skills.toString());
}
}