首页 > 试题广场 >

区分类中重载方法的依据是( )。

[单选题]

区分类中重载方法的依据是(    )。

  • 不同的形参名称
  • 不同的返回值类型
  • 不同的形参列表
  • 不同的访问权限
方法重写严格把握五点:
三同、一大、一小。具体内容以及与方法重载的区别见下:
方法重写
参数列表必须完全与被重写方法的相同; 
返回类型必须完全与被重写方法的返回类型相同; 
方法名相同;
以上为三同;

访问权限不能比父类中被重写的方法的访问权限更低。例如:如果父类的一个方法被声明为public,那么在子类中重写该方法就不能声明为protected。 
此为一大;

父类的成员方法只能被它的子类重写。 
声明为final的方法不能被重写。 
声明为static的方法不能被重写,但是能够被再次声明。 
子类和父类在同一个包中,那么子类可以重写父类所有方法,除了声明为private和final的方法。 
子类和父类不在同一个包中,那么子类只能够重写父类的声明为public和protected的非final方法。 

重写的方法能够抛出任何非强制异常,无论被重写的方法是否抛出异常。但是,重写的方法不能抛出新的强制性异常,或者比被重写方法声明的更广泛的强制性异常,反之则可以。 

此为一小;

构造方法不能被重写。 
如果不能继承一个方法,则不能重写这个方法。 
方法重载
被重载的方法必须改变参数列表(参数个数或类型或顺序不一样); 
被重载的方法可以改变返回类型; 
被重载的方法可以改变访问修饰符; 
被重载的方法可以声明新的或更广的检查异常; 
方法能够在同一个类中或者在一个子类中被重载。 
无法以返回值类型作为重载函数的区分标准。

发表于 2020-04-08 15:10:23 回复(4)
两个重载函数必须在下列一个或两个方面有所区别: 1、函数的参数个数不同。 2、函数的参数类型不同或者参数类型顺序不同
发表于 2019-04-19 20:50:43 回复(4)
重载:
  1.     编译时的多态
  2.     重载发生在同一个类中
  3.     函数名相同,参数列表不同(参数的类型,顺序,个数 和参数名没有关系)  和方法的返回值类型无关   (因为编译器 并不知道 调用哪一个函数)
  4. 可以抛出不同的异常,可以有不同修饰符


重写:
  1.     运行时的多态
  2.     重载发生在子类与父类中
  3.     遵循两同两小一大 
            两同:
                        函数名相同
                        参数列表相同
            两小:
                        子类被重写方法的返回值类型小于父类被重写方法的返回值
                        子类被重写方法抛出异常的类型小于父类被重写方法抛出异常的类型
            一大:
                        子类被重写方法的访问权限大于等于父类被重写方法的访问权限
        4.构造方法不能被重写,声明为 final 的方法不能被重写,声明为 static 的方法不能被重写(隐藏),但是能够被再次声明,父类的私有方法,子类可以继承 但是子类不能访问,子类不能重写父类的私有方法。
发表于 2020-05-09 19:43:51 回复(0)
(1)重载发生在同一个类中,是同一个方法的多种实现。它们返回值和方法名相同,参数列表不同。
(2)重写,也称为覆盖,发生在父子类中。子类对父类的方法进行重新编写,可用@Override标注。重写要遵循如下的原则:“两同两小一大”
  1、两同:函数名相同,形参列表相同
  2、两小:返回值类型、异常子类小于等于父类
  3、一大:访问权限子类大于等于父类
编辑于 2021-10-31 10:44:00 回复(0)
重载的方法就是形参列表的不同,和返回值无关
发表于 2019-09-04 10:51:57 回复(0)
传入的形参是形参,跟名称无关,只关注类型,比如说传入2个int类型的参数,你这两个参数怎么换顺序都一样的,但是如果是一个int类型,一个float类型,则两个参数不同的前后顺序就是重载的体现,说白了就是形参的列表不同
发表于 2020-03-08 11:47:07 回复(0)
方法的重载:在同一个类中,方法名相同参数列表(参数类型、顺序、个数)不同,与返回值无关 -->在一个类中是多态性的一种表现
方法的重写:在子父类关系中,当父类无法满足子类条件时,子类覆盖重写父类的方法,相同的方法名、参数列表、返回值
发表于 2020-03-07 19:08:21 回复(0)
重写和重载的区别是什么,主要就如下几点区别:
1、定义不同:重载是定义相同的方法名、参数不同,重写是子类重写父类的方法
2、范围不同:重载是在一个类中,重写是子类与父类之间的
3、多态不同:重载是编译时的多态性,重写是运行时的多态性
4、参数不同:重载的参数个数、参数类型、参数的顺序可以不同,重写父类子方法参数必须相同
5、修饰不同:重载对修饰范围没有要求,重写要求重写方法的修饰范围大于被重写方法的修饰范围
多态是一个类需要表现出多种形态,子类重写父类的方法,使子类具有不同的方法实现

编辑于 2024-03-05 20:25:41 回复(0)
当你调用方法的时候,只能看到方法名和形参,其他的(返回值,权限修饰符,修饰符...)是看不到的,所以和它们没啥关系,人家只关心方法名和形参,还有重载首先要同类同方法名,那么如果才能区分方法呢?当然只能看形参的不同了,不然没办法区别方法了

发表于 2023-12-27 22:51:01 回复(0)
重载是本类中同名不同参的方法(即不同的方法签名),与返回类型无关,与访问权限无关
发表于 2022-04-12 14:44:01 回复(0)
定义不同---重载是定义相同的方法名,参数不同;重写是子类重写父类的方法 范围不同---重载是在一个类中,重写是子类与父类之间的 多态不同---重载是编译时的多态性,重写是运行时的多态性 返回不同---重载对返回类型没有要求,而重写要求返回类型,有兼容的返回类型 参数不同---重载的参数个数、参数类型、参数顺序可以不同,而重写父子方法参数必须相同 修饰不同---重载对访问修饰没有特殊要求,重写访问修饰符的限制一定要大于被重写方法的访问修饰符
发表于 2021-12-07 08:49:07 回复(0)
方法重载的条件有三个:分别是参数类型不同,参数个数不同和参数顺序不同。(int a, int b)和(int b, int a)不算顺序不同,属于同一种参数顺序。
发表于 2021-05-23 17:21:27 回复(0)
方法的重载,是改变形参列表的个数,顺序,和数据类型
发表于 2020-11-30 09:19:16 回复(0)
参数个数不同,参数类型不同,参数顺序不同
发表于 2020-11-17 09:13:54 回复(0)

Overload

在同一个类中,允许存在一个及以上的同名方法,只要他们的参数列表不同(参数的个数或者参数的类型不同)即可。
注意:方法重载与返回值类型、访问权限修饰符、和抛出的异常无关,也就是说,返回值类型,权限修饰符是可以改变的。
注意:重载是在本类中,与继承关系无关。也就是说可以在子类再重载。

被重载的方法必须改变参数列表(参数个数或类型或顺序不一样);
被重载的方法可以改变返回类型;
被重载的方法可以改变访问修饰符;
被重载的方法可以声明新的或更广的检查异常;
方法能够在同一个类中或者在一个子类中被重载。
无法以返回值类型作为重载函数的区分标准。

Overwrite

同名同参
方法的重写发生在继承关系中,子类对父类的方法进行改造扩充,这就是方法的重写。
1.方法名一致:重写的方法与被重写的方法的方法签名要一致
  2.子类访问权限大于等于父类访问权限:子类重写方法的访问权限必须大于等于父类方法的访问权限,例如父类方法用public修饰,那么子类方法也必须用public修饰。

  3.重写与被重写的方法不能被static与final修饰

  4.异常:子类抛出的受检异常不能大于父类的受检异常(注意只针对受检异常,非受检异常没有此限制)

  5.返回值类型:子类的方法的返回值类型可以小于等于父类的返回值类型

  6.子类不能重写父类的private方法,添加@override注解会报错,因为这个方法是父类私有的子类不能访问,虽然子类继承了这个方法,但是子类只有拥有权没有使用权。如果去掉@override注解就不会再报错,所以说进行方法重写时要记得添加@override注解,让编译器帮助你做检查。

发表于 2020-10-19 11:06:00 回复(0)
方法的重载要求就是两同一不同:同一个类中方法名相同,方法的参数要不同。方法的其他部分如方法的返回值,方法的修饰符等,与方法的重载没有任何关系。
发表于 2020-09-08 22:20:31 回复(0)
<p>重载发生在同一个方法中,参数不同(个数、顺序或类型)与方法的修饰符和返回值无关</p>
发表于 2020-08-28 16:35:17 回复(0)
形参列表
发表于 2020-07-01 00:05:32 回复(0)
在做题的时候被A选项迷惑了一会儿,
方法的重载与参数的个数、类型、顺序有关,与返回值无关。
值得注意的是,与参数的名称也无关,只是一个变量名而已。
发表于 2020-03-14 22:59:28 回复(0)
本题主要考查方法的重载是指多个方法可以享有相同的名字,但参数的数量或类型必须不相同(采用不同的形式参数列表)。程序可按参数列表决定调用对应的方法。
发表于 2020-03-10 14:01:38 回复(0)