首页 > 试题广场 >

对重载函数形象的描述中,正确的是()

[不定项选择题]
下面哪些是重载的基本条件()
  • 参数的类型不同
  • 参数类型的顺序不同(比如 int a , float b 与 float b , int a)
  • 函数的返回值类型不同
  • 参数的个数不同
顺序不同我表示不能理解
发表于 2019-07-31 18:12:18 回复(5)
更多回答
可能,我是服
发表于 2017-05-10 19:17:06 回复(3)
选ABCD
先来看看题目的含义,是通过重载来判断重载所具有的属性。
A:参数的类型不同可能是函数的重载。如:void function (int i)和void function (double d),故A对;
B:参数的顺序不同可能是函数的重载。如:void function (int i, double d)和 void function (double d, int i),题目说可能,故B对;
C:重载的函数,其返回值可能不一样。但是,不能通过返回值来判断函数是否重载;故C对。
D:可以通过函数的参数个数不同来判断是否重载,故D对。答案应该为ACBD。
如果是通过属性来判断函数是否重载:只有通过函数的参数(参数类型,参数个数)。
编辑于 2017-07-12 10:54:50 回复(3)

重载的概念是:

方法名称相同,参数个数、次序、类型不同

因此重载对返回值没有要求,可以相同,也可以不同

但是如果参数的个数、类型、次序都相同,方法名也相同,仅返回值不同,则无法构成重载

发表于 2017-02-19 13:15:26 回复(1)
重写
返回值和形参都不能改变。即外壳不变,核心重写!
重写方法不能抛出新的检查异常或者比被重写方法申明更加宽泛的异常。
子类重写父类的方法访问修饰符不能比被重写方法小,如果父类中被重写方法是protected,子类不能是private
返回类型与被重写方法的返回类型可以不相同,但是必须是父类返回值的派生类(java5 及更早版本返回类型要一样,java7 及更高版本可以不同)。
构造方法不能被重写(但是可以在子类中声明一个与父类构造方法具有相同参数列表相同方法名的成员方法,但是该方法必须有返回值)
使用super调用父类中被重写的方法    


方法的重载

重载(overloading) 是在一个类里面,方法名字相同,而参数不同。返回类型可以相同也可以不同。

每个重载的方法(或者构造函数)都必须有一个独一无二的参数类型列表。

最常用的地方就是构造器的重载。

  • 被重载的方法必须改变参数列表(参数个数或类型不一样);
  • 被重载的方法可以改变返回类型;
  • 被重载的方法可以改变访问修饰符;
  • 被重载的方法可以声明新的或更广的检查异常;
  • 方法能够在同一个类中或者在一个子类中被重载。
  • 无法以返回值类型作为重载函数的区分标准。
区别点 重载方法 重写方法
参数列表 必须修改 一定不能修改
返回类型 可以修改 一定不能修改
异常 可以修改 可以减少或删除,一定不能抛出新的或者更广的异常
访问 可以修改 一定不能做更严格的限制(可以降低限制)
方法重载是一个类的多态性表现,而方法重写是子类与父类的一种多态性表现。
发表于 2019-09-11 10:49:09 回复(0)
参数顺序理解错了,理解为Test(int a,int b,int c)和Test(int c,int b,int a)之间的关系,其实就是一个,形参名称排序无关紧要,重要的数据类型的顺序,这个B需要表达清楚
发表于 2018-09-15 16:30:37 回复(3)
b为什么是对的?假设 参数是这样 String a, String b; 更换参数顺序是完全相同的参数,那又如何谈得上基本条件吗?不是秒被推翻吗?
发表于 2019-09-03 20:46:21 回复(1)
方法返回值类型不能作为重载的基本条件
发表于 2018-06-04 14:56:45 回复(0)
巩固概念的题
发表于 2018-04-11 20:29:17 回复(0)
是在下输了。
发表于 2018-01-02 23:10:36 回复(0)
ACD.
返回值类型不同不能构成重载。
发表于 2017-03-14 15:13:08 回复(0)

和返回类型没关,不就是返回类型可以不同吗?

发表于 2016-12-05 21:53:49 回复(1)

重载的概念是:

方法名称相同,参数个数、次序、类型不同

因此重载对返回值没有要求,可以相同,也可以不同

但是如果参数的个数、类型、次序都相同,方法名也相同,仅返回值不同,则无法构成重载

编辑于 2018-05-07 15:46:54 回复(12)

一 重载(overload)

基本条件:

  • 函数名必须相同;
  • 函数参数必须不相同,可以是参数类型或者参数个数不同;
  • 函数返回值可以相同,也可以不相同;

二 重写(override)

基本条件:

  • 重写的函数和被重写的函数必须为virtual函数,分别位于基类和派生类中;
  • 重写的函数和被重写的函数函数名和函数参数必须一致;
  • 重写的函数和被重写的函数返回值相同,或者都返回指针或引用,并且派生类虚函数所返回的指针或引用的类型是基类中被替换的虚函数所返回的
  • 指针或引用的类型的子类型。

三 隐藏

基本条件:

  • 子类和父类的函数名称相同,但参数不同,此时不管父类函数是不是virtual函数,都将被隐藏。
  • 子类和父类的函数名称相同,参数也相同,但是父类函数不是virtual函数,父类的函数将被隐藏。
发表于 2017-06-16 22:04:14 回复(5)
参数的顺序不同这个无法苟同。我认为类型和个数就决定了。所谓顺序怎么重载 method(int a,int b)和method(int b,int a)换了顺序也不能叫做重载
发表于 2018-05-27 11:52:29 回复(13)
ACD
重载的时候,方法名要一样,但是参数类型和个数不一样,返回值类型可以相同,也可以不相同.无法以返回类型作为重载函数的区分标准.
编辑于 2017-03-31 19:14:34 回复(3)
同名不同参,返回值无关
发表于 2020-04-06 12:34:10 回复(0)

Ø 重写是在派生类中重新定义基类的虚函数,实现多态性。

Ø 重载是在同一个类中定义多个具有相同名称但参数列表不同的函数,提供更灵活的接口。

发表于 2023-10-24 16:12:43 回复(0)

C++ 中的函数重载

在同一个作用域内,可以声明几个功能类似的同名函数,但是这些同名函数的形式参数(指参数的个数、类型或者顺序)必须不同。您不能仅通过返回类型的不同来重载函数。

发表于 2022-08-27 10:07:38 回复(0)

对于函数重载,函数的返回值类型通常不是用来区分重载的条件。函数重载的主要条件通常是参数的类型、参数的个数以及参数类型的顺序
发表于 2023-09-02 16:19:01 回复(0)
什么垃圾题目
发表于 2022-06-15 15:42:37 回复(0)