dedecms织梦内容管理系统    
首页 | java | C/C++ | PHP | 操作系统 | ajax | 脚本编程 | 安全技术 | 本站下载页 | 专题 | QQ群 | 测试中心 | 会员中心 | 积分规则
  当前位置:主页>java>文章内容
构造器内部的多态方法的行为
来源: 作者:芯情

//impori static net.mindview.util.System.out.println.*;//静态导入
class Glyph{
void draw(){System.out.println("Glyph.draw()");}

Glyph(){
System.out.println("Glyph() before draw()");
draw();
System.out.println("Glyph() after draw()");
   }

}

class RoundGlyph extends Glyph{
private int radius=1;

RoundGlyph(int r){
radius=r;
System.out.println("RoundGlyph.draw(),radius="+radius);
}

void draw(){
System.out.println("RoundGlyph.draw(),radius="+radius);
    }

}

public class PolyConstructors{
public static void main(String[] args){
new RoundGlyph(5);
System.out.println("\n");
new Glyph();
   }
}/*output:

Glyph() before draw()
RoundGlyph.draw(),radius=0
Glyph() after draw()
RoundGlyph.draw(),radius=5

Glyph() before draw()
Glyph.draw()
Glyph() after draw()

*///:~

Glyph.draw()方法设计为被覆盖,而这个覆盖是在子类 RoundGlyph中发生的.当创建一个new RoundGlyph()对象的时候,会先初始化基类Glyph,可以这么理解,子类是构造在父类基础之上的,必须先初始化父类才能调用创建子类.在子类构造方法中内涵super(),只是隐藏起来罢了,并且 super()必须用在子类构造函数的第一行.调用子类draw()方法后radius结果是0而非1,因为属性radius在父类中没有定义而初始化值就是0.创建子类的时候对父类的初始化可以理解为
  

RoundGlyph(int r){

super();
radius=r;
System.out.println("RoundGlyph.draw(),radius="+radius);
}

进而可以看成:

RoundGlyph(int r){

System.out.println("Glyph() before draw()");
draw();
System.out.println("Glyph() after draw()");


radius=r;
System.out.println("RoundGlyph.draw(),radius="+radius);
}


上一篇:Python的几个文字处理技巧   下一篇:C++中的内存管理(new、delete、内存泄漏)
[收藏] [推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
用户名: 新注册) 密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §最新评论
  热点文章
·java自学路线图
·JSP入门实例教程
·JUnit单元测试(2)
·JUnit单元测试(1)
·什么是Servlet
·用AJAX+J2EE实现网上会议室系统
·浅谈在Java语言中究竟是传值还是
·Java 5.0 多线程编程实践
·Java的文件 读和写
·JSP常用内置对象使用说明
·对于JAVA基础测试中常见的异常问
·JSP自定义标签由浅到深详细讲解
  相关文章
·对于JAVA基础测试中常见的异常问
·Java的文件 读和写
·Java 5.0 多线程编程实践
·JSP常用内置对象使用说明
·浅谈在Java语言中究竟是传值还是
·什么是Servlet
·用AJAX+J2EE实现网上会议室系统
·JSP自定义标签由浅到深详细讲解
·JSP自定义标签由浅到深详细讲解
·Java Servlet技术
·Javax.servlet API的特征
·JUnit单元测试(2)
  相关信息
copy right @ 百家拳软件项目研究室 2007 辽ICP备07011763