Java中方法重载和方法重写的区别,详细描述,从介绍到语法再到区别

简介: Java中方法重载和方法重写的区别,详细描述,从介绍到语法再到区别

一、 方法重载

1.什么是方法重载?

         Java中方法的重载,就是在一个类中,有相同的方法名称,但形参不同的方法

2.方法重载的规则

                 * 在同一个类中
                 
                 * 方法名相同
                 
                 * 参数不同
                       
                         *个数不同
                        
                         *类型不同
                        
                         *顺序不同
                         
   简单来说:同一个类中,方法名相同,参数不同         
   
 注意:是否为重载关系,只看方法名和参数,跟返回值无关

案例1(参数个数不同)

public class Main {
    public static void main(String[] args) {
        
    }
    
    
    public  static  void  add(int a,int b){
        
    }

    public  static  void  add(int a,int b,int c){

    }
    
}

执行效果

在这里插入图片描述


案例2(参数类型不同)

public class Main {
    public static void main(String[] args) {

    }


    public  static  void  add(long  a,int b){

    }

    public  static  void  add(int a,int b){

    }

}

执行效果

在这里插入图片描述


案例3(参数顺序不同)

public class Main {
    public static void main(String[] args) {

    }


    public  static  void  add(long  a,int b){

    }

    public  static  void  add( int b,long a){

    }

}

执行效果

在这里插入图片描述


注意

     这里的顺序不同,一定要是不同类型的顺序不同,
     而不能是同类型的顺序不同而已,要不然就不是重载会报错

例子

public class Main {
    public static void main(String[] args) {

    }


    public  static  void  add(int   a,int b){

    }    //报错

    public  static  void  add( int b,int a){

    }   //报错

}

在这里插入图片描述


3.方法重载的作用

            * 统一方法名,提高方法的兼容性和灵活性,方便调用者使用方法
                
            * JDK中大量使用了方法重载,比如println方法就是重载,目的是调用println时只需要记住一个名字,使用方便

二、方法重写

1.什么是方法重写?

          *子类中对父类已有的方法重新实现功能

          *当子类和父类有相同的功能,但父类的该功能不满足子类的需求时,子类可以重写父类中的方法。

案例

public class Animal {

    public void run(){
        System.out.println("运动");
    }
}
public class Dog extends  Animal{


    //方法重写:在继承父类的方法基础上,进行方法的升级改造


    @Override   //注解,检查重写的语法是否正确,如果错误会报错
    public void run() {
        System.out.println("四条腿跑");
    }
}

2.方法重写的前提

           要有继承关系,在子类可以重写方法

3.方法重写的规则

         *方法名、参数列表、返回值类型都保持不变,和父类一样
         
         *子类重写的方法,访问权限要大于等于父类方法的权限
                    private -> default -> protected -> public
                    
         *私有方法和静态方法不能被重写   
         
         
             tips: @Override注解可以检验重写格式

案例

在这里插入图片描述


三、两者的区别

                                方法重载                                 方法重写
                            
         概念            同一个类中,方法名相同,参数不同        方法名、参数列表、返回值类型都保持不变,和父类一样
                
         范围                   同一个类中                           要有继承关系,在子类可以重写方法
         
         限制                  没有访问限制                        *子类重写的方法,访问权限要大于等于父类方法的权限
         
                                                                  *私有方法和静态方法不能被重写      

作者:KJ.JK

本文仅用于交流学习,未经作者允许,禁止转载,更勿做其他用途,违者必究。
文章对你有所帮助的话,欢迎给个赞或者 star,你的支持是对作者最大的鼓励,不足之处可以在评论区多多指正,交流学习

目录
相关文章
|
4天前
|
前端开发 JavaScript Java
Java与JavaScript的区别与联系:有人的地方就有江湖,有浏览器的地方就有JavaScript
Java与JavaScript的区别与联系:有人的地方就有江湖,有浏览器的地方就有JavaScript
|
4天前
|
消息中间件 前端开发 Java
java面试刷题软件kafka和mq的区别面试
java面试刷题软件kafka和mq的区别面试
|
6天前
|
Java 开发框架 XML
JDK、JRE、Java SE、Java EE和Java ME有什么区别?
JDK、JRE、Java SE、Java EE和Java ME有什么区别?
|
6天前
|
Java
java一分钟之-字符流与字节流的区别
【5月更文挑战第11天】Java的输入输出通过流操作,分为字符流和字节流。字节流处理二进制数据,如图片、音频,基类是`InputStream`和`OutputStream`;字符流处理文本,基类是`Reader`和`Writer`。字符流涉及编码转换,字节流不涉及。易错点包括乱码(需指定编码)、混用流类型和忘记关闭流。示例展示了字节流和字符流读文件。理解区别并注意编码和资源管理可提高代码质量。
36 3
|
6天前
|
小程序 Java 容器
03|Java基础语法:讲解标识符、关键字、变量、数据类型、运算符、控制语句(条件分支、循环)
03|Java基础语法:讲解标识符、关键字、变量、数据类型、运算符、控制语句(条件分支、循环)
10 0
|
6天前
|
Java
深入浅出Java基础语法:标识符、关键字、变量、数据类型、运算符与控制语句
深入浅出Java基础语法:标识符、关键字、变量、数据类型、运算符与控制语句
9 0
|
6天前
|
安全 Java 编译器
Java中String、StringBuilder和StringBuffer的区别
Java中String、StringBuilder和StringBuffer的区别
11 1
|
6天前
|
Java 编译器 程序员
Java基础语法之基本语法格式
本文主要复习了Java的基础语法,包括类的定义、方法、主方法、注释和关键字等内容,旨在帮助读者巩固Java学习中的重要概念。
|
6天前
|
Java
Java中 a+=b和a=a+b有什么区别?
Java中 a+=b和a=a+b有什么区别?
|
6天前
|
Java 开发者
Java中三种Set的实现类的用法和区别
Java中三种Set的实现类的用法和区别