重写是对已有方法的重写
子类可以重写父类的方法
例如:对Object类中toString、equals方法的重写
其中override是重写的标志(可以采用Ctrl+o快捷键进行方法的重写)
package comprehensiveExercise;
public class Animal extends Object{
private int age;//年龄
public Animal() {
}
public Animal(int age) {
this.age = age;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
void introduce(){
//System.out.println("我是一只动物");
System.out.println("今年"+getAge()+"岁了");
}
@Override
public String toString() {
return "Animal{age=" + age + "}";
}
@Override
public boolean equals(Object obj) {
//如果obj==Null 直接返回false
if (obj == null) {
return false;
}
//如果指向同一个地址,返回true
if (this == obj) {
return true;
}
//判断成员变量的内容是否完全相同
Animal other = (Animal) obj;//向下转型
if (this.age == other.age) {
return true;
}else{
return false;
}
}
}
定义一个鸟类
ublic class Bird extends Animal {
private String color;
public Bird() {
}
public Bird(int age, String color) {
super(age);
this.color = color;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public void fly() {
System.out.println("我展翅高翔");
}
public void introduce() {
System.out.println("我是一个"+getColor()+"的鸟");
super.introduce();
this.fly();
}
@Override
public boolean equals(Object obj) {
boolean flag = super.equals(obj);
if (flag) {
Bird other = (Bird) obj;
if (other.color == this.color) {
return true;
}else
{
return false;
}
}else{
return false;
}
}
}
对父类Animal类中的equals方法进行重写
@Override
public boolean equals(Object obj) {
boolean flag = super.equals(obj);
if (flag) {
Bird other = (Bird) obj;
if (other.color == this.color) {
return true;
}else
{
return false;
}
}else{
return false;
}
}