java中的方法重载与方法重写的区别以及细节

文章详细阐述了Java中的方法重载和重写。方法重载关注点在于方法名相同但参数列表不同,与访问修饰词和返回类型无关。例子展示了如何在同一个类或继承关系中实现重载。而方法重写仅存在于继承关系中,要求子类方法名与父类相同,参数列表也相同,返回值和访问修饰词需符合特定规则。重写用于子类自定义父类方法的行为。
摘要由CSDN通过智能技术生成

对于java的方法重载是只考虑方法名与参数列表,构成方法重构载的条件是:方法名必须相同,参数列表必须不同;

细节一:只考虑方法名与参数列表,与访问修饰词和返回类型无关,只要是方法名相同与参数列表不相同的情况下也是构成重载,例如:

    public static void main(String[] args) {
        Person person = new Person();
        person.say("小明");
        person.say(15);
        double a=person.say(65.3);
    }
}
class Person{
    public void say(String name){
        System.out.println("我的名字是:"+name);
    }
    public void say(int age){
        System.out.println("我的年龄是:"+age);
    }
    public double say(double salary){
        System.out.println("我的金额是:"+salary);
        return salary;
    }
}

运行结果我的名字是:小明
我的年龄是:15
我的金额是:65.3

 细节二:在继承关系中只要方法名相同参数列表不同,也是构成重载的

    public static void main(String[] args) {
        xiao x = new xiao();
        x.say("小民");
        x.say(32);

    }
}
class Person{
    public void say(String name){
        System.out.println("我的名字是:"+name);
    }
}
class xiao extends Person{
    public void say(int age){
        System.out.println("我的年龄是:"+age);
    }
}

总结:方法重载是实现同一方法可以传入不同参数,实现不同功能的作用,不论是在继承关系还是同类关系中,只需要关系方法名是否相同,参数列表是否不同;

java中的方法重写是只针对于继承关系的,子类继承父类的本质是子类复制了父类的属性与方法,

细节一:子类方法名与父类方法名相同,参数列表也必须相同;

 

    public static void main(String[] args) {
        xiao x = new xiao();
        x.say("小民");
        


    }
}
class Person{
    public void say(String name){
        System.out.println("我的名字是:"+name);
    }
}
class xiao extends Person{
    public void say(String name){
        System.out.println("aaa");
    }
}

 此时对于子类对象来说,只有子类中的say方法而找不到父类的say方法

细节二:子类方法的返回值只能是父类方法返回值的子类或者与父类返回值相同

细节三:子类方法的访问修饰词只能等同或者扩大,例如父类say方法是public 则子类不能将其方法的访问范围缩小,也只能是public

总结:方法重载是用于同一方法传入不同参数实现不同功能而存在,只需要注意方法名相同参数列表不同;方法重写是在继承关系下,子类方法想要拥有于父类同名的方法,但不想使用父类的功能,则利用方法名相同参数列表相同的方式来实现自己的功能,需要注意的是如果是方法重载,那么对于访问修饰词的要求是只大不小,对返回值的要求是父类方法返回值的子类。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值