JAVA:重载方法——对父类方法进行重写

来源:互联网 发布:资金线指标源码 编辑:程序博客网 时间:2024/06/16 13:30

JAVA:重载方法——对父类方法进行重写

Java中直接定义的类默认继承了父类Object

常常需要重写的函数有equals()toString()

equals()

默认定义:

public boolean equals(Object obj) {

       return (this == obj);

}

如果对两个对象的某个属性用equals()进行比较,它的默认定义是比较两个对象指针是否指向同一个对象。而实际上我们常常需要的是对内容进行比较,这时候就需要进行改写。

CtrlO可以选择父类的方法进行重写

@Override
public boolean equals(Object obj) {
   
if(this==obj)returntrue;       //判断待比较的两个是不是本来就是一个
   
boolean r=false;
   
if(objinstanceof Student){       //判断待比较对象是不是Student
        Student temp = (Student)obj;  //类型转换
        if(this.name.equals(temp.name)
               
&& this.grade== temp.grade)
           
r = true;
   
}
    return r;
}

// Java 中的instanceof运算符是用来在运行时指出对象是否是特定类的一个实例。instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例。

toString()

默认定义

public String toString() {

       return getClass().getName() + "@" +Integer.toHexString(hashCode());

}

可以看出如果直接对对象的某个属性.toString,那么返回的是类名,并不是我们想要的。

CtrlO可以选择父类的方法进行重写

@Override
public String toString() {
   
String temp = "";
   
temp += "name: " +name+ "\n";
   
temp += "grade: " +grade+ "\n";
   
return temp;
}

 

0 0