Java构造器内部多态方法这个坑
来源:互联网 发布:尤克里里谱子软件 编辑:程序博客网 时间:2024/06/05 02:06
玉双生 2016-12-26 09:11
直接上代码,这个结果输出的很有意思,调用继承者的方法,可是值却为0!!
运行结果:
原因如下:
Glyph.draw()方法设计为了将要被覆盖,这种覆盖是在RoundGlyph中发生的。但是Glyph构造器会调用这个方法,结果导致了对RoundGlyph.draw()的调用,这看起来似乎是我们的目的。但是如果看到输出结果,我们会发现当Glyph的构造器调用draw()方法时,radius不是默认初始值1,而是0。这可能导致一个错误,或者什么东西都没有,我们只能干瞪眼!
真正初始化的过程如下:
1)在其他任何事物发生之前,将分配给对象的储存空间初始化成二进制的零。
2)调用被覆盖的draw()方法(要在调用RoundGlyph构造器之前调用),由于步骤1的缘故,我们此时发现radius的值为0。
3)按照声明的顺序调用成员的初始化方法。
4)调用导出类的构造器主体。
本文为头条号作者发布,不代表今日头条立场。
0 0
- Java构造器内部多态方法这个坑
- java 构造器内部的多态方法和行为
- JAVA构造器内部的多态方法的行为
- Java构造器内部的多态方法的行为
- java构造器内部的多态方法
- java构造器内部的多态方法
- 构造器内部的多态方法!!
- 构造器内部的多态方法
- Java多态--构造方法的内部方法多态
- java构造器内部的多态
- Java构造器内部的多态
- java基础--多态--构造器内部的多态方法行为
- java学习之构造器内部的多态方法的行为
- Java中构造器内部的多态方法的行为
- Java中构造器内部使用多态方法导致的错误
- 构造器内部的多态方法行为
- 构造器内部的多态方法的行为
- 构造器内部的多态方法的行为
- windows C++ 控制台程序不显示黑框的办法
- 3.2 js六大数据类型
- iOS NSDictionary深度遍历,包含数组怎么办?
- Windows 域时间同步
- 一个简单登录的SpringMVC的示例
- Java构造器内部多态方法这个坑
- AS - R文件未找到
- Xcode新建的项目中,UITabBarController的视图不能从xib文件中初始化
- C++ 用libcurl库进行http通讯网络编程
- 嵌入式数据库简介---SQLite
- Android Studio 使用wifi调试
- linux day-01作业
- python[生成随即的密码]
- (2)Ubuntu配置任意版本的apt-get镜像