java的重载和重写

2023-08-20 17:05:06 0 0 编辑:亿网科技有限公司 来源:本站原创

Java 中的重载(Overloading)和重写(Overriding)是两种不同的概念,用于实现不同类型的多态性。

重载(Overloading):

重载指的是在同一个类中定义了多个方法,它们具有相同的方法名但不同的参数列表。参数列表包括参数的个数、类型或顺序,但不能仅仅是返回类型不同。编译器通过根据方法调用时传递的参数数量、类型或顺序来选择相应的方法进行调用。重载方法之间的区分是在编译时确定的。

例如:

public class MyClass {
public void print(int num) {
System.out.println("int: " + num);
}
public void print(String str) {
System.out.println("String: " + str);
}
public void print(double num1, double num2) {
System.out.println("double: " + num1 + ", " + num2);
}
}

在上面的例子中,MyClass 类中定义了三个名为 print 的方法,它们的参数列表不同,分别接受一个 int、一个 String 和两个 double 类型的参数,这就是方法的重载。

重写(Overriding):

重写指的是子类重新定义了父类中具有相同方法名、方法签名(包括方法名、参数列表和返回类型)的方法。在继承关系中,子类可以对父类中的方法进行覆盖,使得在子类对象调用该方法时执行子类中的实现逻辑,而不是父类中的实现逻辑。重写是运行时多态性的一种体现,因为在运行时根据对象的实际类型来决定调用哪个方法。

例如:

public class Animal {
public void makeSound() {
System.out.println("Animal makes sound");
}
}
public class Cat extends Animal {
@Override
public void makeSound() {
System.out.println("Cat makes meow");
}
}
public class Dog extends Animal {
@Override
public void makeSound() {
System.out.println("Dog makes woof");
}
}

在上面的例子中,Animal 类定义了一个名为 makeSound 的方法,Cat 和 Dog 类继承自 Animal 类,并分别重写了 makeSound 方法。当创建 Cat 对象调用 makeSound 方法时,会执行 Cat 类中的实现逻辑;当创建 Dog 对象调用 makeSound 方法时,会执行 Dog 类中的实现逻辑。这就是方法的重写。

关键词: disc 关于 冰箱 冬天 昆明 乌鸦 旧书 扯领 双鳍 外保 大国 沙棘
本站文章均为<亿网科技有限公司>网站建设摘自权威资料,书籍,或网络原创文章,如有版权纠纷或者违规问题,请即刻联系我们删除,我们欢迎您分享,引用和转载,我们谢绝直接复制和抄袭!
我们猜你喜欢