【软件构造】重载与重写

本文介绍了Java中的方法重载(Overload)和方法重写(Override)的概念,包括它们的区别、相关因素和应用场景。通过实例演示了如何利用重载提供多参数版本的功能,并强调了重写在子类中修改父类方法的规则。
摘要由CSDN通过智能技术生成

1.重载

  • 前提:对于功能类似的方法来说,因为参数列表不一样,却要记住那么多不同的方法名称,太麻烦

  • 方法的重载(Overload):多个方法的名称一样(减少方法名称的数量),但是参数列表不同

  • 优点:只需要记住唯一一个方法名称,就可以实现类似的多个功能

  • 方法重载(只看参数)与下列因素相关(参数列表不一样):

        1.参数个数不同

        2.参数类型不同(若有逆变则视为相同)

        3,参数的多类型顺序不同

  • 方法重载于下列因素无关

        1.与参数的名称无关

        2.与方法的返回值类型无关

例子:

public class Demo04MethodOverload {

    public static void main(String[] args) {

        System.out.println(sum(5,10));

    }







     public static int sum(int a,int b){

        System.out.println("有2个参数的方法执行");

        return a+b;



    }

    /*public static int sum(int x,int y){

        System.out.println("有2个参数的方法执行");

        return x+y; 不可以 因为和上面相同



    }*/

    /*

    参数的类型不同

     */

    public static int sum(double a,double b){

        System.out.println("有2个参数的方法执行");

        return(int)(a+b);



    }

    public static int sum(int a,int b,int c){

        return a+b+c;



    }

    public static int sum(int a,int b,int c,int d){

        return a+b+c+d;



    }

}

 

2.重写

概念:

  • 1、在子类中可以根据需要对从基类中继承来的方法进行重写。

  • 2、重写的方法和被重写的方法必须具有相同方法名称、参数列表和返回类型。(注:返回值可以为父类中返回值的子类型.参数若为子类,则不是重写是重载)

  • 3、重写方法不能使用比被重写的方法更严格的访问权限。

  • 4、重写方法不能声明抛出比被重写方法范围更大的异常类型。

总结:

  •         重写是子类对所继承父类相同方法的一种更改,这个更改需要遵循格式按照父类的格式,访问权限,抛出异常等等,都在父类方法控制范围内,内部具体实现可以实现不同的效果。通俗一点来说:重写就是对父类的的同一个方法的改写,但是别人怎么知道你这是重写,不是添加的新方法?这就要求格式必须跟父类相同,别人一看,呀,他俩长的一模一样(指的上面2,3,4规则),肯定是重新写了,就是重写。

例子:

//定义父类:

public class Father extends Grandpa {
    String add(int a, int b) {
        int c = a + b;
        return "" + c;
    }
}
//定义子类

public class Son extends Father {
    String add(int a, int b) {
        int c = a + b;
        return "" + c;
    }

    public static void main(String[] args) {
        Son son = new Son();
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值