java中方法的重载和覆盖分别要满足的条件

1.重载:遵循“两同三不同”

两同:同一个类中的同名方法

三不同:形参的类型,个数,顺序不同

特别提醒:

  • 返回值不同构不能方法重载
  • 形参名称不同构不成方法重载

2.覆盖(重写)的要求

  1. 子类方法的名称,返回类型必须与父类一致。
  2. 子类方法不能缩小父类方法的访问权限
  3. 子类方法不能抛出比父类方法更多的异常
  4. 方法覆盖只存在于子类和父类,同一个类中方法只能被重载
  5. 父类的静态方法不能被子类覆盖
  6. 子类可以定义与父类的静态方法同名的静态方法
  7. 父类的非静态方法不能被子类覆盖为静态方法
  8. 父类的私有方法不能被子类覆盖
  9. 父类的抽象方法可以被子类通过两种途径覆盖:①实现抽象方法 ②再次定义为抽象方法由孙类实现或继续抽象
  10. 父类的非抽象方法可以被覆盖为抽象方法

原文地址:https://www.cnblogs.com/leiblog/p/11588292.html

时间: 2024-11-09 08:21:59

java中方法的重载和覆盖分别要满足的条件的相关文章

Java中方法的重载与覆盖(随笔01)

方法重载(Overlord) .方法重载:指在同一个类中,允许在一个以上的同名方法,只要它们的参数列表不同即可,与修饰符和返回值类型无关(例如:构造方法重载). .参数列表:个数不同,数据类型不同,顺序不同: .重载方法调用:JVM通过方法的参数列表,调用不同的方法. 上面的三种方法在同一类中的前提下是,重载 方法覆盖(Override)(又叫方法重写) .方法覆盖:子类中出现与父类一模一样的方法时(返回值类型,方法名和参数列表相同),会出现覆盖,重写效果.声明不变,重新实现. .注意事项 1.

java中方法的重载与重写的区别

JAVA中方法的重载与重写 1)  方法的的参数上看:重载后的方法与源方法在参数的类型以参数列表的顺序上会发生改变,而重写后的方法在参数的数据类型与参数列表的顺序不会发生改变 2)原方法是否对被覆盖:重载后的方法不会覆盖原方法,而重写后的方法会覆盖父类中的方法,调用时也只会调用重写后的方法. 3)调用方法的对象上:重载后的方法被调用时,调用对象不同时,调用的方法不同,产生的结果也不同:而重写后的方法被调用时,无论调用的对象是父类或者子类的对象,调用的方法相同,产生的结果也一样

对比C++与Java中的函数重载、覆盖、和隐藏

                                  在C++中 1.函数的重载 C++中的函数的重载要求的是  函数名相同 参数列表必须不同  返回值类型可以相同也可以不相同:只有参数列表不相同,在函数调用时,编译环境才能准确抉择调用的是哪个函数.例如:void display():void display(int  i);void dispaly(double  i);void  display(int i,double i); void display(double  i,i

Java中方法的重载和重置(覆盖)的区别

简单来说,重载就是在同一类中允许同时存在一个以上的同名方法,只要这些方法的参数个数或类型不同即可,而重置(覆盖)是子类重新定义父类中己经定义的方法,即子类重写父类方法. 方法的重载 方法的重载就是在同一类中允许同时存在一个以上的同名方法,只要这些方法的参数个数或类型不同即可.总得来有三种情况: 1.参数个数不同,构成重载 public int add(int a,int b){ return a+b; } public int add(int a){ return a } 2.参数类型不同,构成

Java 中方法的重载

问: 什么是方法的重载呢? 答: 如果同一个类中包含了两个或两个以上方法名相同.方法参数的个数.顺序或类型不同的方法,则称为方法的重载,也可称该方法被重载了.如下所示 4 个方法名称都为 show ,但方法的参数有所不同,因此都属于方法的重载: 问: 如何区分调用的是哪个重载方法呢? 答: 当调用被重载的方法时, Java 会根据参数的个数和类型来判断应该调用哪个重载方法,参数完全匹配的方法将被执行.如: 运行结果: 判断方法重载的依据: 1. 必须是在同一个类中 2. 方法名相同 3. 方法参

详细讲解Java中方法的重载和重写

首先讲讲方法的重载: Java的重载就是在类中可以创建多个方法,它们具有相同的名字,但是却有不同的参数. 判断是否重载只有两个条件: 1)相同的方法名 2)不同的参数 具体为: A.方法参数类型不同 B.方法参数个数不同 C.方法参数排列顺序不同 代码如下: package com.tocean.test;//包名 public class Test1 { public void name(int i){ System.out.println("overloading"); } //方

Java基础---Java中方法的重裁(四十一)

Java 中方法的重载 问: 什么是方法的重载呢? 答: 如果同一个类中包含了两个或两个以上方法名相同.方法参数的个数.顺序或类型不同的方法,则称为方法的重载,也可称该方法被重载了.如下所示 4 个方法名称都为 show ,但方法的参数有所不同,因此都属于方法的重载: 问: 如何区分调用的是哪个重载方法呢? 答: 当调用被重载的方法时, Java 会根据参数的个数和类型来判断应该调用哪个重载方法,参数完全匹配的方法将被执行.如: 运行结果: 判断方法重载的依据: 1. 必须是在同一个类中 2.

java中方法的定义

java中方法的定义: [修饰符]   [修饰符]   [返回值类型] 方法名字 [形参列表] //带[]的可以省略,返回值类型不能省略. 就拿main方法来说,public         static       void       main (String[] args){ 方法体: return 返回值://返回值要与返回值类型相匹配.没有返回值的话,返回值类型用void; } 方法的定义:为了完成某项功能,封装的一系列代码的集合: 方法的调用:同一个类中可以直接用方法名():调用:但

java中方法调用

JAVA中方法的调用[基础] 一.调用本类中的方法 方法一.被调用方法声明为static ,可以在其他方法中直接调用.示例代码如下: public class HelloWord { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub String str="HelloWord!"; int a=0; int b=a+1; int result=