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

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;
}

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值