class Glyph {
void draw() { print("Glyph.draw()"); }
Glyph() {
print("Glyph() before draw()");
draw();
print("Glyph() after draw()");
}
}
class RoundGlyph extends Glyph {
private int radius = 1;
RoundGlyph(int r) {
radius = r;
print("RoundGlyph.RoundGlyph(), radius = " + radius);
}
void draw() {
print("RoundGlyph.draw(), radius = " + radius);
}
}
class RectangularGlyph extends Glyph {
private int length = 2;
private int width = 4;
RectangularGlyph(int l, int w) {
length = l;
width = w;
print("RectangularGlyph.RectangularGlyph(), length = "
+ length + ", width = " + width);
}
void draw() {
print("RectangularGlyph.draw(), length = " + length
+ ", width = " + width);
}
}
public class PolyConstructors15 {
public static void main(String[] args) {
new RoundGlyph(5);
new RectangularGlyph(3, 6);
}
}
output:
Glyph() before draw()
RoundGlyph.draw(), radius = 0
Glyph() after draw()
RoundGlyph.RoundGlyph(), radius = 5
Glyph() before draw()
RectangularGlyph.draw(), length = 0, width = 0
Glyph() after draw()
RectangularGlyph.RectangularGlyph(), length = 3, width = 6
注意初始化顺序:
1、在任何事情发生之前,将分配给对象的存储空间初始化成二进制的0。
2、调用父类构造器,调用被子类覆盖的方法,由于子类构造器尚未执行,此时子类中的radius仍然是0.
3、按照声明的顺序调用成员的初始化方法。
4、调用子类的构造器。
分享到:
相关推荐
Java ------ 多态作业
Java-SpringBoot-使用多态给项目解耦.doc
Java程序设计课程实验10-接口和多态Java程序设计课程实验10-接口和多态Java程序设计课程实验10-接口和多态Java程序设计课程实验10-接口和多态Java程序设计课程实验10-接口和多态Java程序设计课程实验10-接口和多态...
Educoder题目:Java面向对象 - 封装、继承和多态的综合练习答案解析
Educoder题目:Java面向对象 - 封装、继承和多态答案解析
第8章--virtual函数与多态
第八讲 多态 1、再谈向上类型转换(upcasting) 忘记对象的类型 2、多态机理 方法绑定(method binding) ... 构造方法中多态方法的行为 5、利用继承设计 纯粹继承与扩展 向下类型转换及运行时类型辨识
行业分类-设备装置-多态计算平台及其构造方法.zip
JAVA面向对象基础测试题-继承-封装-多态等测试题.docx
java学习资料—Java继承和多态;java学习资料—Java继承和多态;java学习资料—Java继承和多态;java学习资料—Java继承和多态;java学习资料—Java继承和多态;java学习资料—Java继承和多态;java学习资料—Java...
Python自学教程-02-了解多态.ev4.rar
JAVA多态思维导图,便捷整理思路,多态的好处、多态的语法格式、多态中的两种类型转换:向上转型、向下转型
【IT十八掌徐培成】Java基础第06天-03.多态-类多态-接口多态-同名属性问题.zip
Python自学教程-03-体验多态思路分析.ev4.rar
第六周-第11章节-Python3.5-多态实例讲解.avi
主要介绍了Java中构造器内部的多态方法的行为,结合实例形式分析了java构造器内部多态方法相关原理、功能及操作技巧,需要的朋友可以参考下
行业资料-电子功用-承载介质上多态数据编码隐藏电子信息方法
java---- 封装,接口,继承,覆盖,构造过程,多态,static、this、super、final用法
Java语言程序设计--继承和多态
内涵Java开发的继承和多态的教程ppt,还有课后练习,欢迎下载学习