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

论坛 期权论坛 脚本     
匿名技术用户   2021-1-5 03:59   11   0

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(obj instanceof 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 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP