重写(继承关系)

子类得成员方法和父类的成员方法,方法名,参数类型,参数个数完全相同,这就是子类的方法重写了父类的方法。

重载

在一个类里有两个方法,方法名是完全一样的,参数类型或参数个数不同。

例子:

//父类
public class Pet {
    public void eat(){
        System.out.println("pet eat");
    }
    public void eat(String a){    //重载,同一个类,方法名相同,参数类型或个数不同
        System.out.println("pet String eat");
    }
}
//子类
public class Cat extends Pet{
    public void eat(){    //重写
        System.out.println("cat eat");
    }
    public void eat(int a){
        System.out.println("cat int eat");
    }
}

toString() 方法重写

返回:
该对象的字符串表示形式。

直接调用 toString() 方法

Java之面向对象例子(三) 多态,重写,重载,equals()方法和toString()方法的重写-LMLPHP

还可以点击 Source 中的Genenrate toString() 方法来选择要使用该方法的参数 和方法 来生成官方的 toString() 方法

public class Pet {
    public void eat(){
        System.out.println("pet eat");
    }
    public void eat(String a){    //重载,同一个类,方法名相同,参数类型或个数不同
        System.out.println("pet String eat");
    }
    @Override
    //官方提供的重写toString() 方法
    public String toString() {
        return "Pet [getClass()=" + getClass() + ", hashCode()=" + hashCode() + ", toString()=" + super.toString()
                + "]";
    }
}

equals方法重写

equals比较两个new实例化的对象返回结果一定为false,重写让他比较对象的属性

instanceof

public class Pet {
    private String name;
    private String sex;
    public void eat(){
        System.out.println("pet eat");
    }
    public void eat(String a){    //重载,同一个类,方法名相同,参数类型或个数不同
        System.out.println("pet String eat");
    }
    @Override
    //官方提供的重写toString() 方法
    public String toString() {
        return "Pet [getClass()=" + getClass() + ", hashCode()=" + hashCode() + ", toString()=" + super.toString()
                + "]";
    }
    public boolean equals(Object obj){
        if(obj!=null){
            if(obj instanceof Pet){ //判断传入的对象是不是Pet类的
                Pet t1=(Pet)obj;  //将obj强制转换成Pet
                return this.equals(t1.name)&&this.equals(t1.sex);    //判断当前对象的属性是否相同
            }
        }
        return false;
    }
}

父类的引用指向子类的对象。

public class Main {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Pet c=new Cat();
        c.eat();
    }
}

Java之面向对象例子(三) 多态,重写,重载,equals()方法和toString()方法的重写-LMLPHP

04-18 14:19
查看更多