【java面试题】-java重写和重载的区别

简介: java重写和重载的区别

Java中的"重写"(Override)和"重载"(Overload)是两个不同的概念,用于实现不同类型的方法多态性。

  1. 重写(Override):
  • 重写是指在子类中重新定义(覆盖)父类中已经存在的方法,使得子类可以提供自己的实现。子类中的重写方法必须具有相同的方法名、参数列表和返回类型,以及更具体的访问权限(不能降低访问权限)。
  • 重写关注于子类对父类方法的重新实现,使得在运行时调用方法时,根据对象的实际类型决定调用的是父类方法还是子类重写的方法。
  • 重写方法可以实现多态性,即通过父类引用指向子类对象,并在运行时根据对象的实际类型调用相应的方法。

示例:


classAnimal {
publicvoidmakeSound() {
System.out.println("Animal makes a sound");
    }
}
classCatextendsAnimal {
@OverridepublicvoidmakeSound() {
System.out.println("Cat meows");
    }
}
  1. 重载(Overload):
  • 重载是指在同一个类中可以定义多个具有相同名称但参数列表不同的方法。这些方法在名称相同的情况下,通过不同的参数个数、类型或顺序进行区分。
  • 重载关注于同一个类中方法的多样性,允许在一个类中根据不同的需求提供多个方法,但方法名必须相同,方法的返回类型可以相同也可以不同。
  • 重载不涉及继承关系,只是在同一个类中对方法的多态性支持。

示例:

classCalculator {
publicintadd(inta, intb) {
returna+b;
    }
publicdoubleadd(doublea, doubleb) {
returna+b;
    }
}

总结:重写(Override)指子类重新定义父类中已有的方法,实现方法的多态性;重载(Overload)指在同一个类中定义多个方法,它们的方法名相同但参数列表不同,提供方法的多样性。重写涉及继承,而重载仅在同一个类中发生。

目录
相关文章
|
14天前
|
安全 Java
【JAVA】在 Queue 中 poll()和 remove()有什么区别
【JAVA】在 Queue 中 poll()和 remove()有什么区别
|
14天前
|
Java API
【JAVA】final、finally、finalize 有什么区别?
【JAVA】final、finally、finalize 有什么区别?
|
14天前
|
Java
【JAVA】throw 和 throws 的区别?
【JAVA】throw 和 throws 的区别?
|
14天前
|
Java
【JAVA】Iterator 和 ListIterator 有什么区别?
【JAVA】Iterator 和 ListIterator 有什么区别?
|
2天前
|
安全 Java 编译器
Java中String、StringBuilder和StringBuffer的区别
Java中String、StringBuilder和StringBuffer的区别
|
4天前
|
Java
三个可能的Java面试题
Java垃圾回收机制自动管理内存,回收无引用对象的内存,确保内存有效利用。多态性允许父类引用操作不同子类对象,如Animal引用可调用Dog的方法。异常处理机制通过try-catch块捕获和处理程序异常,例如尝试执行可能导致ArithmeticException的代码,catch块则负责处理异常。
25 9
|
11天前
|
Java
Java中 a+=b和a=a+b有什么区别?
Java中 a+=b和a=a+b有什么区别?
|
11天前
|
Java 开发者
Java中三种Set的实现类的用法和区别
Java中三种Set的实现类的用法和区别
|
14天前
|
存储 安全 Java
【JAVA】concurrentHashMap和HashTable有什么区别
【JAVA】concurrentHashMap和HashTable有什么区别