方法覆盖,从字面就可以知道,它是覆盖了一个方法并且对其重写,以求达到不同的作用。对我们来说最熟悉的覆盖就是对接口方法的实现,在接口中一般只是对方法进行了声明,而我们在实现时,就需要实现接口声明的所有方法。除了这个典型的用法以外,我们在继承中也可能会在子类覆盖父类中的方法。在覆盖要注意以下的几点:
1、覆盖的方法的标志必须要和被覆盖的方法的标志完全匹配,才能达到覆盖的效果;
2、覆盖的方法的返回值必须和被覆盖的方法的返回一致;
3、覆盖的方法所抛出的异常必须和被覆盖方法的所抛出的异常一致,或者是其子类;
4、被覆盖的方法不能为private,否则在其子类中只是新定义了一个方法,并没有对其进行覆盖
public class Parent {
public int addValue( int a, int b) {
int s;
s = a+b;
return s;
}
}
class Child extends Parent {
}
哪些方法可以加入类Child中? [BC] //方法的覆盖
A. int addValue( int a, int b){// do something...}
B. public void addValue (){// dosomething...}
C. public int addValue( int a){// do something...}
D. public int addValue( int a,int b )throws Exception {//do something...}
A错的原因是因为:子类重写父类的方法时,不能缩小父类方法的访问权限,也就是必须在A前加public
D错的原因是因为:父类中未曾抛出Exception异常,因此子类中不能抛出Exception(但是RuntimeException及其子类除外)
分享到:
相关推荐
详解Java 方法覆盖
JAVA方法覆盖与重载的区别
主要介绍了Java方法覆盖重写实现原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
java方法的覆盖java方法的覆盖
Java方法继承、方法重载、方法覆盖总结。比较具体细致地描述他们之间的连系与区别,需要的同学可以看看。
Java SE程序 覆盖Object中的方法Java SE程序 覆盖Object中的方法Java SE程序 覆盖Object中的方法Java SE程序 覆盖Object中的方法Java SE程序 覆盖Object中的方法Java SE程序 覆盖Object中的方法Java SE程序 覆盖...
JavaMethodOverriding2:Java方法覆盖2
内容概要: 本文介绍了Java中方法覆盖(Method Overriding)的概念和用法。读者将学习什么是方法覆盖,为什么需要方法覆盖,以及如何在子类中覆盖父类的方法。此外,还会讨论方法覆盖时的一些注意事项和规则。 能学...
Java新手指南方法覆盖Java开发Java经验技巧共14页.pdf.zip
Java方法继承、方法重载、方法覆盖小结.doc
方法的重载与覆盖 发生重载的条件: 1、在使用重载时只能通过不同的参数样式。例如,不同的参数类型,不同的参数个数,不同的参数顺序(当然,同一方法内的几个参数类型必须不一样,例如可以是fun(int, float), ...
基于Java编译器的MC_DC测试覆盖方法设计.pdf
作为初学者2个比较容易出错的定义,方法覆盖和变量覆盖。下面我们一起来看看作者如何去探讨Java的方法覆盖和变量覆盖。
一个简单的提供覆盖式和追加式写文件功能的JAVA类,可调用其覆盖式方法创建新文件或重置老文件内容,调用其追加式方法在已有文件中增加新内容。
boolean resolve)方法,该方法为ClassLoader的入口点,在jdk1.2以后,loadClass方法将缺省调用findClass方法,详细内容可以参考API文档,我们编写的ClassLoader主要就是为了覆盖以上两个方法。回到我们刚才的问题,...
Java 实例 - 方法覆盖源代码-详细教程.zip
让Java支持热加载是个不错的想法。如何做到的呢? 1. 定义好接口和实现类 2. 让代理类通过反射的方式调用实现类,对外暴露的是代理类。 3. 自定义URLClassLoader。...Java覆盖已加载的class; Java自定义classloader;
变量和方法覆盖和隐藏的不同:一个类的实例无法通过使用全局名或者强制自己转换为父类型,以访问父类中被隐藏的方法,然而强制转换子类为父类型之后,可以访问父类中被隐藏的变量。另外静态方法不能覆盖父类的实例...
java中方法的继承,覆盖
2、main方法是Java Application程序执行的入口点,关于main方法的方法头以下哪项是合法的( )。 A、 public static void main() B、 public static void main(String[ ] args) C、 public static int main(String[ ...