黑马程序员技术交流社区

标题: 覆盖方法时的注意事项是什么? [打印本页]

作者: 不再上网    时间: 2014-8-15 20:42
标题: 覆盖方法时的注意事项是什么?
覆盖方法时的注意事项是什么?
作者: 姜佳文    时间: 2014-8-15 20:54
重写的意思呗,就是方法声明完全一样,方法体不同就行了
作者: 安宁.沉睡    时间: 2014-8-15 20:56
本帖最后由 安宁.沉睡 于 2014-8-16 07:24 编辑

覆盖方法要注意:让函数返回值,函数名,函数参数列表都一样, 并且要确定想覆盖放方法不是被final修饰的(final 修饰的方法不准覆盖)
作者: 廿乙木    时间: 2014-8-15 21:04
除了函数体,其他都要一模一样
作者: 安宁.沉睡    时间: 2014-8-16 07:24
安宁.沉睡 发表于 2014-8-15 20:56
覆盖方法要注意:让函数返回值,函数名,函数参数列表都一样, 并且要确定想覆盖放方法不是被final修饰的( ...

还有些补充
1.        子类同名函数权限必须大于或等于父类同名函数才能覆盖,否则编译失败
2.        静态属性和函数只能覆盖静态的
3.        同名覆盖后,在类中可以用this, super 关键字区分调用子类,父类同名属性和函数,默认为this

作者: 安宁.沉睡    时间: 2014-8-16 07:26
安宁.沉睡 发表于 2014-8-16 07:24
还有些补充
1.        子类同名函数权限必须大于或等于父类同名函数才能覆盖,否则编译失败
2.        静态属性和函数只 ...

继续补充一点
构造函数不可以被重写,因为构造函数名不可能一样
作者: 新航向    时间: 2014-8-16 07:46
安宁.沉睡 发表于 2014-8-15 20:56
覆盖方法要注意:让函数返回值,函数名,函数参数列表都一样, 并且要确定想覆盖放方法不是被final修饰的( ...

补充:重写的方法"权限"应该大于等于原方法
作者: 嘿~~    时间: 2014-8-16 11:37
1:被覆盖的方法在父类中,重写的方法在子类中
2:子类中的 方法访问权限等于或大于父类中的方法
    子类中方法抛出异常类型小于或等于父类中方法抛出异常
     子类方法返回值类型小于或等于父类方法返回值类型
3:非静态方法只能覆盖非静态方法
4:方法名必须一致,参数必须一致




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2