全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  千锋问问

java的重载和重写

问题描述:

推荐答案 本回答由问问达人推荐

  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 类中的实现逻辑。这就是方法的重写。

查看其它两个剩余回答
在线咨询 免费试学 教程领取