您的位置:

重载和重写在Java中的区别

Java是一种面向对象的编程语言,重载和重写是Java中两个重要的概念。

一、重载

1、定义

Java中的重载是指在同一个类中,同名的方法,但是参数个数、顺序或类型不同,从而实现不同的功能。

2、规则

重载方法,必须要满足以下条件: - 方法名必须相同,参数列表不同。 - 返回类型可以不同,但是参数列表必须不同。 - 可以改变方法的修饰符。 - 可以声明新的异常,或者不声明任何异常。

3、代码示例

public class OverloadTest {
    public void test(){
        System.out.println("无参方法");
    }
    public void test(int i){
        System.out.println("重载带参方法: " + i);
    }
    public void test(String s){
        System.out.println("重载带参方法: " + s);
    }
}

二、重写

1、定义

Java中的重写是指在子类中重新定义与父类同名、同参的方法,但是方法体可以不同。通过重写,可以实现多态的特性。

2、规则

重写方法,必须要满足以下条件: - 方法名必须相同,参数列表也必须相同。 - 返回类型必须与原方法的返回类型相同,或者是其子类。 - 访问修饰符可以选择和原方法相同或者更为宽松。 - 不能抛出比原方法声明更大的范围的受检查异常。

3、代码示例

class Animal {
    public void move(){
       System.out.println("动物可以移动");
    }
}
class Dog extends Animal{
    public void move(){
       System.out.println("狗可以跑和走");
    }
}

三、重载和重写的区别

1、参数列表不同

重载方法是指在同一个类中,方法名相同,但是参数列表不同。而重写是指子类中重写父类的方法,方法名及参数列表必须一致。

2、返回值

重载方法的返回值可以相同或不同,没有限制;但是重写方法的返回值必须相同或为其子类对象。

3、访问修饰符

重载方法的访问修饰符不限制,但是重写方法的访问修饰符不能低于父类中方法的访问修饰符。

4、异常

重载方法,新方法可以声明新的异常,或者不声明任何异常;而重写方法不允许抛出比原方法声明更大的范围的受检查异常。

5、作用

重载方法可以在同一类中实现一个方法具有各种可能的操作;而重写方法则是将父类中的方法重新实现,在不同的对象上产生不同的作用。

四、总结

重载和重写是Java语言中的两个重要的概念。重载方法是在方法名称相同的情况下,根据不同参数列表,实现多个方法;而重写方法是在子类里实现对父类同名方法的重新实现,在多态等方面有很大的作用。正确地使用重载和重写,能够提高程序的可读性和可维护性,也是开发Java程序必不可少的基本技能。