一、重载的定义
- 重载发生在同一个类中,是指有多个同名方法,但它们的参数列表不同(参数数量、参数类型或参数顺序不同)。
- 编译器根据方法签名(方法名和参数列表)来决定调用哪个方法。
demo:
public class OverloadingExample {
// 重载方法1
public void display(String message) {
System.out.println("String参数: " + message);
}
// 重载方法2
public void display(int number) {
System.out.println("int参数: " + number);
}
// 重载方法3
public void display(String message, int number) {
System.out.println("String和int参数: " + message + ", " + number);
}
public static void main(String[] args) {
OverloadingExample example = new OverloadingExample();
example.display("Hello"); // 输出:String参数: Hello
example.display(123); // 输出:int参数: 123
example.display("Hello", 123); // 输出:String和int参数: Hello, 123
}
}
二、重写的定义
重写发生在继承关系中,子类定义了一个与父类方法签名完全相同的方法。子类通过重写父类的方法来提供具体的实现,以适应子类的特定行为。
demo:
class ParentClass {
public void show() {
System.out.println("父类的方法");
}
}
class ChildClass extends ParentClass {
// 重写父类的方法
@Override
public void show() {
System.out.println("子类重写的方法");
}
}
public class OverridingExample {
public static void main(String[] args) {
ParentClass obj1 = new ParentClass();
obj1.show(); // 输出:父类的方法
ChildClass obj2 = new ChildClass();
obj2.show(); // 输出:子类重写的方法
}
}
三、重载与重写的区别
- 发生位置:重载发生在同一个类中,而重写发生在继承关系的不同类之间。
- 方法签名:重载的方法必须有不同的参数列表,而重写的方法必须与父类中的方法有相同的方法签名。
- 返回类型:重写的方法可以有相同的返回类型或者子类返回类型,而重载的方法可以有相同的或不同的返回类型。
- 访问权限:重写的方法不能有比父类方法更严格的访问权限。
- 异常抛出:重写的方法不能抛出比父类方法更宽泛的检查型异常。
以上就是本次分享的所有内容,感兴趣的朋友点个关注呀,感谢大家啦~
以上就是本次分享的所有内容,感兴趣的朋友点个关注呀,感谢大家啦~