Java方法重写

一、方法重写原因

如果从父类继承的方法不能满足子类的需求,可以在子类中对父类的同名方法进行重写(覆盖),以符合需求。

二、方法重写(方法覆盖)必须满足如下要求

1.重写方法和被重写方法必须具有相同的方法名

2.重写方法和被重写方法必须具有相同的参数列表

3.重写方法的返回值类型必须和被重写方法的返回值类型相同或者是其子类

4.重写方法不能缩小被重写方法的访问权限。

三、方法重载和方法重写的区别

比较项位置方法名参数列表返回值权限修饰符

方法重载同一个类中相同不同无关无关

方法重写子类中相同相同相同或是其子类不能比父类更严格

四、重写toString()方法

当System.out.println()输出实例化对象时,会自动调用toString方法,此时输出的就不是

地址,而是你想输出的内容。

1)手写:

public String toString() {
    return "姓名:" + name;
}

2)自动生成myeclipse快捷键shift+alt+s,idea快捷键alt+insert

@Override//注解告诉Java虚拟机这是重写方法
public String toString() {
    return "TestExtends [name=" + name + "]";
}

五、重写equals方法,

当实例化对象调用equals时,可以根据你规定的比较条件进行比较

1)自动生成myeclipse快捷键shift+alt+s,idea快捷键alt+insert

@Override//注解告诉Java虚拟机这是重写方法
public boolean equals(Object obj) {//返回值为布尔类型
    if (this == obj)//直接比较是比较地址
        return true;
    if (obj == null)//空指针
        return false;
    if (getClass() != obj.getClass())//getClass()的结果:class 包名.类名
        return false;
    TestExtends other = (TestExtends) obj;//多态的Object向下转型为TestExtends类
    if (name == null) {//name属性为空时
        if (other.name != null)
            return false;
    } else if (!name.equals(other.name))//字符串调用equals方法则比较的是内容
        return false;
    return true;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

 林先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值