黑马程序员技术交流社区
标题:
关于子类覆盖父类方法的疑问????
[打印本页]
作者:
IT人
时间:
2013-12-4 16:08
标题:
关于子类覆盖父类方法的疑问????
在子类覆盖父类的方法时,是不是参数的类型要保持和复制的一致??不是重写父类方法么??参数能变么??
为什么??
作者:
心的方向
时间:
2013-12-4 16:29
你说的是重写与重载吧.重写父类方法类型要保持和覆盖的一致,从写父类方法这个不是方法重载,方法重载才是参数类型\参数列表不一样.方法重载与方法返回值无关
作者:
末末
时间:
2013-12-4 17:22
子类重写父类的方法时,参数的个数和类型一定要一致,这个是重写的规则,如果只是方法名相同,但是参数的类型和个数不同的话就是一个新的方法了,不要重写,叫重载 重写与重载的区别 方法的重载:是指在类中可以创建多个方法,它们有相同的名字,但具有不同的参数和不同的定义 重载的时候,方法名要一样,但是参数类型和个数不一样,返回值类型可以相同也可以不相同。无法以返回型别作为重载函数的区分标准。 重写:父类与子类之间的多态性,对父类的函数进行重新定义,如果在子类中定义某方法与其父类有相同的名称和参数,我们就该方法被重写
作者:
谢文斌
时间:
2013-12-4 21:53
本帖最后由 谢文斌 于 2013-12-4 22:06 编辑
overload(重载):
1,在同一个类;
2,必须同名;
3,参数个数或参数类型不同、顺序不同;
4,函数重载和返回值类型无关。
5,java是严谨性语言,如果函数出现的调用的不确定性,会编译失败。
==========
傲娇的分割线
===========
override(复写,覆盖,重写):
子类中。当子类方法覆盖父类方法时,子类权限必须要大于等于父类的权限,静态只能覆盖静态,或被静态覆盖。
作者:
sd110572
时间:
2013-12-5 12:15
参数变了就是重载,你传啥参数就调用啥。
你要重写的不一样就改返回值吧,支持返回改变为原类型的子类
class Test1 {
public Object workO() {
return new Object();
}
}
class Test2 extends Test1 {
public String workO() {
return new String();
}
}
复制代码
其中String是Object的子类型.
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2