当前位置:  技术问答>java相关

关于 abstract class

    来源: 互联网  发布时间:2015-08-11

    本文导语:  thinking in java 讲述建构式中存在着poymorphism method方法时, 有下面这个例子。    abstract class Glyph { abstract void draw(); Glyph() { System.out.println("Glyph() before draw()"); draw(); System.out.println("Glyph() after draw()"); } } class R...

thinking in java 讲述建构式中存在着poymorphism method方法时,
有下面这个例子。
  

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

class RoundGlyph extends Glyph {
int radius = 1;
RoundGlyph(int r) {
radius = r;
System.out.println(
"RoundGlyph.RoundGlyph(), radius = "
+ radius);
}
void draw()
System.out.println(
"RoundGlyph.draw(), radius = " + radius);
}
}
public class PolyConstructors {
public static void main(String[] args) {
new RoundGlyph(5);
}


RoundGlyph extends Glyph,在RoundGlyph呼叫自身的建构式之前
会先呼叫Glyph的建构式。  
可是Glyph是abstract,抽象类没法产生实际的物件,那怎么可以呼叫Glyph()??  

|
虽然Glyph是abstract,但Glyph()没有声明为abstract,是可以直接调用的。

|
RoundGlyph 继承了Glyph,但没有覆盖Glyph的构造方法,也就是说,
RoundGlyph还有一个默认的,但不是显性的构造方法:

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



    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间javax.lang.model.element枚举modifier的类成员方法: abstract定义及介绍
  • 关于abstract和final的问题
  • java命名空间java.lang.reflect类modifier的类成员方法: abstract定义及介绍
  • 关于java.util.EventObject的疑问?和abstract ,interface关键字的疑问?
  • 解析abstract与override究竟可不可以同时使用
  • 突然想到一个奇怪的问题:如果一个非abstract类中包含一个空方法体(及非Java代码写的方法体是空的)的native方法,编译会通过吗?
  • 深入解读php中关于抽象(abstract)类和抽象方法的问题分析
  • 深入理解C# abstract和virtual关键字
  • C# 设计模式之Abstract Factory 抽象工厂(概念)
  • c#中的interface abstract与virtual介绍
  • Java修饰符 abstract,static,final 的区别详解
  • 谁用过CachedRowSet的?abstract不可初始化问题。


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3