<Head first Java>继承与多态_重载与覆盖
来源:互联网 发布:nodejs res.json 编辑:程序博客网 时间:2024/06/05 19:58
本文用以自己java学习的过程中碰到的小问题的总结提示,坚持下去,肯定对自己掌握android开发大有裨益!
第七章 继承与多态_重载与覆盖
可能是翻译问题,关于 覆盖和重载 此处并没有说清楚,自己找了比较好的说法,如下:
override可以翻译为覆盖,从字面就可以知道,它是覆盖了一个方法并且对其重写,以求达到不同的作用。对我们来说最熟悉的覆盖就是对接口方法的实现,在接口中一般只是对方法进行了声明,而我们在实现时,就需要实现接口声明的所有方法。除了这个典型的用法以外,我们在继承中也可能会在子类覆盖父类中的方法。在覆盖要注意以下的几点:1、覆盖的方法的标志必须要和被覆盖的方法的标志完全匹配,才能达到覆盖的效果;2、覆盖的方法的返回值必须和被覆盖的方法的返回一致;3、覆盖的方法所抛出的异常必须和被覆盖方法的所抛出的异常一致,或者是其子类;4、被覆盖的方法不能为private,否则在其子类中只是新定义了一个方法,并没有对其进行覆盖。overload对我们来说可能比较熟悉,可以翻译为重载,它是指我们可以定义一些名称相同的方法,通过定义不同的输入参数来区分这些方法,然后再调用时,VM就会根据不同的参数样式,来选择合适的方法执行。在使用重载要注意以下的几点:1、在使用重载时只能通过不同的参数样式。例如,不同的参数类型,不同的参数个数,不同的参数顺序(当然,同一方法内的几个参数类型必须不一样,例如可以是fun(int, float), 但是不能为fun(int, int));2、不能通过访问权限、返回类型、抛出的异常进行重载;3、方法的异常类型和数目不会对重载造成影响;4、对于继承来说,如果某一方法在父类中是访问权限是priavte,那么就不能在子类对其进行重载,如果定义的话,也只是定义了一个新方法,而不会达到重载的效果
class A {protected int method1(int a, int b) { return 0; }}public class B extends A{ public int method1(int a, int b) { return 0; } //正确,重写父类方法,可以扩大访问权限//private int method1(int a, int b) { return 0; } //错误,重写父类方法,不能降低了访问权限//private long method1(int a, int b) { return 0; } //错误,重写父类方法,不能改变返回值类型public short method1(int a, long b) { return 0; }//正确,重载自身的方法,可以有不同的访问权限和返回值类型private int method1(int a, long b) { return 0; }//正确,重载自身的方法,可以有不同的访问权限和返回值类型}
结合上边的例子和书本上知识,就比较好理解了。
覆盖的规则如下:
1、参数必须要一样,且返回类型必须要兼容(返回值一样的类型或其子类,本人试验只能一样的类型)。
2、不能降低方法的存取权限。
方法的重载:重载版的方法知识刚好有相同的名字的不同方法,它与继承或多态无关。重载的方法和覆盖的方法不一样。其规则有:
1、返回类型可以不同
2、不能只改变返回类型;如果只有返回类型不同,但参数一样,这是不允许的。重载的条件是要使用不同的参数,此时返回类型可以自由的定义。
3、可以更改存取权限。
1 0
- <Head first Java>继承与多态_重载与覆盖
- Java Head First 第七章 继承与多态
- 第9章_继承和多态_方法覆盖(overrides)与方法重载(overloads)的区别
- Head First Java#10_数字与静态
- java 覆盖与重载
- Java重载与覆盖
- java重载与覆盖
- java重载与覆盖
- java重载与覆盖
- java -- 重载与覆盖
- Java与C++继承中的重载,覆盖和隐藏
- java类的继承中方法的覆盖与重载
- 黑马程序员Java基础之多态与继承、覆盖与重载
- java继承与覆盖
- JAVA继承与覆盖
- 继承覆盖与多态
- Head First Java#8_多态抽象接口
- Java中覆盖、继承、重载和多态的详细解说与this和super的用法
- SkyLine简介
- CSS+Div (一)
- 【SSH进阶之路】Hibernate映射——一对多关联映射(七)
- UILabel自适应高度代码
- jquery实现图片缩小放大的切换
- <Head first Java>继承与多态_重载与覆盖
- phalcon pdo封装
- secureCRT 从服务器上 下载或上传文件
- NYOJ448 寻找最大数
- 【其它】Hello World
- STM32F1或F4芯片启动过程
- 同一labeltext设置不同的属性
- 使用proc_create创建proc文件
- 【SSH进阶之路】Hibernate映射——多对多关联映射(八)