Overload与Override

简介: Overload重载:指同一个类中可以同时存在多个同名的方法,但是方法的参数个数、参数类型及参数顺序不能相同(返回值类型可以改变)。

Overload重载:指同一个类中可以同时存在多个同名的方法,但是方法的参数个数、参数类型及参数顺序不能相同(返回值类型可以改变)。

Override重写:指子类中存在与父类某个方法的方法名、参数个数和参数类型以及返回值类型完全一样的方法,总之和父类中的某个方法签名完全一样。通过子类创建的实例调用这个方法时,将调用子类中的这个方法。就相当于子类中的这个方法把父类中的这个同名方法给覆盖了一样了。

  • 重写是面向对象编程中多态性的实现方式之一。
  • 子类中的这个方法只能抛出比父类中的同名方法少的异常或是抛出父类方法中抛出异常的子异常。
  • 子类中覆盖的方法的访问权限只能比父类中的大或相等,不能更小。
  • 如果父类中的某个方法是private的,且子类中存在一个同名和同参数的方法时,此时不能称之为Override。因为子类根本不知道父类有这么一个方法,何来覆盖。
Overload的方法是否可以改变返回值类型?
  • 如果方法名相同,参数列表不同,那是可以改变返回值类型的。

final 方法不能被覆盖。

static 方法不能被子类继承,也就不能覆盖。


要实现重载只能通过不同的参数列表实现,不能通过 访问修饰符返回值抛出的异常实现。

覆盖的方法,只能改变访问修饰符抛出的异常不能改变返回类型方法名参数列表。且访问修饰符只能扩大或不变,抛出的异常只能是父类中同名方法抛出异常的子集或子异常。   如果改变了其他,就不能称之为覆盖,就相当于在子类中新增了个方法。

目录
打赏
0
0
0
0
1
分享
相关文章
2. 什么是重载(Overload)和重写(Override) ?
重载(Overload): 重载是指在同一个类中可以定义多个具有相同名称但参数列表不同的方法。这些方法可以有不同的返回类型、不同的参数类型、不同的参数顺序或不同的参数个数。编译器根据方法的不同参数特征来区分它们,并根据调用时提供的参数类型和个数来确定执行哪个方法。简单来说,重载允许在同一个类中定义多个方法,以便根据不同的参数情况来执行不同的操作。
332 0
Java常用关键字:this、super、final、static、访问修饰符
我从工作开始之前开始写博客,写到现在发现以前写的内容在现在看来有了更多想法,因此有了现在的知识重写计划,最主要的目的是维护github上的知识体系,让JavaStarter更加成熟。
重载(overLoad)与重写(override)的区别与详解
重载(overLoad)与重写(override)的区别与详解
方法重载与方法重写(@Overload @Override)
java方法重载和方法重写(方法覆盖)的区别: 方法重载: Overload 方法重写: Override 批判,本身二者一点关系都没有,仅仅只是因为名字很像.
1545 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等