方法的重写和重载

目录

1.什么是重载?用法?

2.方法的重写

3.二者之间的区别


1.什么是重载?用法?

    方法的重载是指同一个类中具有相同的名字,但参数不同的多个方法。
      为什么用重载  :  在编程过程中,是存在一定的编程规范的,所以这要求我们命名的方法名是要有实际意义的,有时相同的方法功能可能面临不同的参数选择,而为了规范与方便了解各个方法之间的关系,这就会用到重载,执行过程中会根据方法的参数来辨别方法来执行
所以,重载是很大程度用来提高程序的可读性的,不用也不会影响程序运行
例 :
public void add(T val){
        root=add(root,val);         //调用重载后的add方法
    }

public Node add(Node root,T val){       //重载add方法
    if (root==null){
        return new Node(val);        
    }
    if (val.compareTo(root.val)<0){    
       root.left=add(root.left, val);
    }else {
        root.right=add(root.right,val);
    }
       return root;
    }

上述代码块就是重载的一个好的体现,在同样的添加模块,因为参数不同,我们使用重载可以使代码有一定的规范性

另外参数不同也包含三方面的不同

数量不同,类型不同,顺序不同

例:

    public void method(){
        
    }

    public void method(int a){    //重载1

    }

    public void method(String a){  //重载2

    }

    public void method(String a,int b){   //重载3

    }

    public void method(int b,String a){  //重载4

    }

另外需要注意一点 : 重载跟返回值类型没有关系

例 :

 如上图,这样会报错,所以返回值类型跟重载没有关系

2.方法的重写

当父类的方法实现不能满足子类需求时 , 可以对方法进行重写 ( override)
例 : 
public class Birds {   //鸟类

    public void method(){
        System.out.println("鸟会飞");
    }
}
public class Ostrich extends Birds{    //鸵鸟类

    @Override //重写标签
    public void method() {
        System.out.println("鸵鸟不会飞,鸵鸟跑");
    }
}

通过上面例子我们可以了解 : 鸟类有一个"飞"的方法,鸵鸟类继承了鸟类,但鸵鸟不会飞,从鸟类继承来的方法不能满足鸵鸟类实际的需求,所以我们对继承的方法进行重写,让他满足我们需要的功能

需要注意 : 重写是对继承来的方法而言的

有人会说,我重新定义个方法实现这个功能不也可以,这样没什么问题,但对于编码规范来讲,这样写是很麻烦的,所以我们用重写就没有这个顾虑,而且重写可以更好的拓展方法的功能

方法重写规则
      • 方法名相同、参数列表相同;
      • 返回值类型相同;
      • 访问权限不能小于父类权限;
注意:构造方法 , 静态方法不能重写 , 成员变量不存在重写

3.二者之间的区别

    重载 : 方法名相同,但参数不同 ,与返回值无关,是对当前类而言的
    重写 : 方法名相同,各个参数都相同,返回值相同 ,是对子类而言的
    重载和重写都大大增强了代码的扩展性
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值