首页 > 试题广场 >

在Java中,以下关于方法重载和方法重写描述正确的是?

[单选题]
在Java中,以下关于方法重载和方法重写描述正确的是?
  • 方法重载和方法的重写实现的功能相同
  • 方法重载出现在父子关系中,方法重写是在同一类中
  • 方法重载的返回值类型必须一致,参数项必须不同
  • 方法重写的返回值类型必须相同或相容。

public class Test {

    public Object aa(){
    return "";
 }
}
class bb extends Test{
    public String aa(){
    return "";
 }
}

测试了,上面的代码不报错
 
编辑于 2016-03-08 22:54:29 回复(6)
请问相容是什么意思,还有就是重载和重写是一样或者相似的,接口和抽象类是一样和相似的,很懵!!
发表于 2019-08-15 21:17:31 回复(0)
方法的重载:
方法重载的定义:在同一个类或与他的子类中,方法名相同而参数列表不同。参数列表不同指的是参数的数量,类型,类型的顺序这三种至少有一种不同。
方法重载与下列无关:
与返回值类型无关,与访问修饰符符无关。

方法的重写:
方法重写的定义:在继承关系中,子类定义与父类相同的方法。
方法重写的特点:
发生在继承关系中,方法名相同,参数列表也相同
重写的方法的返回值类型与父类中被重写方法的返回值类型相同或是他的子类型
重写方法的访问权限与父类方法的访问权限相同或高于父类方法的访问权限
重写的方法不能声明比父类更宽泛的异常
方法重写的注意事项:
构造方法不能被重写(构造方法名必须与当前类名相同)
private修饰的方法不能被重写
static修饰的方法不能被重写
final修饰的方法不能被重写
子类重写父类的方法,子类的对象调用的方法是重写后的方法(所以说是运行时期的活动么)

在java中,重载和重写都是多态的体现。
重载是编译时期的活动,重写是运行时期的活动
发表于 2017-10-01 02:28:24 回复(0)
重写也可以是 子类里面
发表于 2017-04-12 16:31:51 回复(0)
重载对返回值没有要求;
但是重写的返回值必须是一样的,不存在相容的情况!
发表于 2017-03-01 13:32:53 回复(0)
重载是上面不一样 重写是下面不一样 这么记快 嘿嘿
发表于 2016-09-18 14:09:29 回复(1)
重写是overload 又叫覆写
重载是overriding
这个一定要记清楚啊

编辑于 2016-09-05 11:19:37 回复(3)

方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义。

调用方法时通过传递给它们的不同参数个数和参数类型来决定具体使用哪个方法。
重载的时候,方法名要一样,但是参数类型和个数不一样,返回值类型可以相同也可以不相同。无法以返回型别作为重载函数的区分标准。
发表于 2015-11-13 17:12:40 回复(0)
目前的问题:父类的功能无法满足子类的需求

方法重写的前提: 必须要存在继承的关系。

方法的重写: 子父类出了同名的函数,这个我们就称作为方法的重写

什么是时候要使用方法的重写:父类的功能无法满足子类的需求时。

方法重写要注意的事项:
    1.方法重写时, 方法名与形参列表必须一致
    2.方法重写时,子类的权限修饰符必须要大于或者等于父类的权限修饰符
    3.方法重写时,子类的返回值类型必须要小于或者 等于父类的返回值类型
    4.方法重写时, 子类抛出的异常类型要小于或者等于父类抛出的异常类型
            Exception(最坏)
            RuntimeException(小坏)

方法的重载:在一个类中 存在两个或者两个 以上的同名函数,称作为方法重载

方法重载的要求
    1. 函数名要一致。
    2. 形参列表不一致(形参的个数或形参 的类型不一致)
    3. 与返回值类型无关。
发表于 2016-10-09 21:31:06 回复(11)
总是傻傻分不清重载和重写,一直是按照overriding和overload记忆的,中文真是博大精深啊。
重载(overload):只要方法名 一致 ,其他(参数列表、返回值)怎么折腾随便。
重写(overriding):只有实现的功能代码 不一致 ,其他的(函数名、参数列表、返回值类型)必须都一致。
发表于 2016-03-26 10:58:49 回复(9)
方法的重写Override要遵循“两同两小一大”规则:
①“两同”即方法名相同,形参列表相同;
②“两小”指的是子类方法返回值类型应比父类方法返回值类型更小或相等,子类方法声明抛出的异常类应比父类方法声明抛出的异常类更小或相等;
③“一大”指的是子类方法的访问权限应比父类方法的访问权限更大或相等。
注:构造方法不受以上规则约束;

方法的重载Overload要注意以下的几点:
①在使用重载时只能通过不同的参数样式。例如,不同的参数类型,不同的参数个数,不同的参数顺序;
②不能通过访问权限、返回类型和抛出异常的差异进行重载;
③方法的异常类型和数目不会对重载造成影响;
编辑于 2017-03-18 20:37:23 回复(3)
继承关系中方法重写。简单理解就一句话,声明的所有成分都需要保持一致,返回值类型,方法名字,参数列表。都需要保持一致。
发表于 2016-01-28 20:59:08 回复(1)
A选项:重载是为了方便相同的算法适合于不同的类型,所以才会要求形参不同即为重载。重写主要是为了子类改变父类方法的功能。重写和重载的目的在设计语言时就是不同的。功能 也不同。
B选项:参考A解释
C选项:重载参数必须不同是对的,和返回值是否相同无关。如果是两个函数名相同,参数不同的函数,足以保证是重载,要是二者返回值随便,不用必须一致。
D选项:正确。注意两同(名字、形参),两小(返回值、异常),一大(访问权限)。
发表于 2017-06-28 16:13:02 回复(0)
重写是子类的方法覆盖父类的方法,要求方法名和参数都相同

重载是在同一个类中的两个或两个以上的方法,拥有相同的方法名,但是参数却不相同,方法体也不相同,最常见的重载的例子就是类的构造函数
发表于 2016-02-27 23:03:34 回复(0)
重写规则: 两同:方法名相同;形参列表相同 两小:子类方法返回值类型应比父类方法返回值类型更小或相等; 子类方法声明抛出的异常应比父类方法声明抛出的异常类更小或相等 一同:覆盖方法与被覆盖方法都是类方法或都是实例方法
发表于 2016-08-28 17:38:15 回复(0)
重载与返回的类型无关。
发表于 2019-07-21 16:35:23 回复(0)
重写和重载别搞混了,重写是才是重写父类方法
发表于 2019-06-21 15:02:01 回复(0)
重载只是同名,重写是子重写父,所以必须要求返回值类型相同
发表于 2019-03-27 21:05:31 回复(0)
重写 也就是 覆盖 需要满足 两同两小一小
两同:方法名相同
           参数列表相同
两小: 子类中方法抛出的异常 小于父类中方法抛出的异常 
            子类中方法的返回值类型大于等于父类中方法的返回值类型
一大: 子类中方法的访问权限大于等于父类中方法的访问权限 
重载  是在同一个类中  方法名相同 参数列表不同 与返回值无关
发表于 2018-12-30 11:02:39 回复(0)
方法重载:两同一不同 方法重写:三同 类名,方法名,参数
发表于 2018-12-07 13:11:26 回复(0)