CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2SE / 基础类

请教:父类中若是定义构造函数为private,是不是在子类中均无法再重载或扩展?

楼主zengshengbo(喜爱)2004-09-02 09:51:08 在 Java / J2SE / 基础类 提问

我在父类中定义了构造函数为private   PrintSpooler()   throws   SingletonException,但在子类中想增加public   PrintSpoolerChild(String   n)   throws   SingletonException构造函数都不能,父类中并没有定义这个函数,不知道是怎么回事。后来在父类中增加了带参数的构造函数仍是不行,提示“PrintSpoolerChild.java   can't   be   applied   to()”  
  具体代码如下,比较简单,请指教,谢谢!  
   
  //父类代码  
  package   Employee;  
  import   Employee.SingletonException;  
   
  class   PrintSpooler   {  
   
  private   static   boolean   instance_flag=false;  
  private   static   PrintSpooler   ps=null;                    
   
                    //构造函数1  
  private   PrintSpooler()   throws   SingletonException   {}    
   
                    //构造函数2  
  public   PrintSpooler(String   n)   throws   SingletonException   {  
  //   TODO:   Add   your   code   here  
  String   strName=new   String(n);  
  }  
                    ...  
  }  
   
  //子类代码  
  package   Employee;  
   
  import   Employee.PrintSpooler;  
   
  class   PrintSpoolerChild   extends   PrintSpooler   {  
   
                    //问题出在这里???  
  public   PrintSpoolerChild(String   n)   throws   SingletonException{  
  //   TODO:   Add   your   code   here  
  String   strName=new   String(n);  
  }  
  ...  
  }  
   
  问题点数:30、回复次数:10Top

1 楼kingfish(工作很忙,很少来csdn...)回复于 2004-09-02 10:09:18 得分 0

既然要继承,为什么父类用private构造函数?  
   
  奇怪Top

2 楼lixiang823517(泥浆)回复于 2004-09-02 10:18:29 得分 0

可以使用protected  
  继承对象可以使用父类中的protected,但是构造函数不建议这么使用,还是public   或者default比较合适吧Top

3 楼zengshengbo(喜爱)回复于 2004-09-02 10:36:32 得分 0

其实这是一个单例模式,我希望能够有较好的扩展性和安全性,因此不能不让它被继承。Top

4 楼itview(可以包含中文字符,不能用于登录)回复于 2004-09-02 10:49:01 得分 0

既是要继承   为什么还要用private  
  可以使用protectedTop

5 楼kingfish(工作很忙,很少来csdn...)回复于 2004-09-02 10:59:59 得分 0

子类要调用父类的构造函数,  
  父类:singleton,构造为private,  
  子类无权调用。  
   
  Top

6 楼zengshengbo(喜爱)回复于 2004-09-02 11:12:06 得分 0

问题就在这里,我希望能够让子类继承,但是不想子类通过对构造函数的重载进行任意修改,以造成产生多个实例的情况(恶意代码)Top

7 楼MaxMarvel(我是一只小小,小,小,鸟)回复于 2004-09-02 11:22:06 得分 0

挺怪的,哈.Top

8 楼kingfish(工作很忙,很少来csdn...)回复于 2004-09-02 11:29:37 得分 0

前后矛盾,不可能Top

9 楼flyxxxxx()回复于 2004-09-02 11:45:15 得分 0

public   class   PrintSpooler  
  {  
      protected   static   _PrintSpooler   ps;  
       
      public   PrintSpooler(){  
          ps=new   _PrintSpooler();  
      }  
       
      final   public   class   _PrintSpooler{  
          private   _PrintSpooler(){  
           
          }  
           
          public   void   print(){  
           
          }  
      }  
  }  
   
  class   PrintSpoolerChild   extends   PrintSpooler{  
   
      public   PrintSpoolerChild(){  
      }  
   
  }  
  PrintSpooler是可以继承的,重载它的方法调用_PrintSpooler类的内部参数  
  用公开的不可继承的内部类_PrintSpooler作为一个单一实例,因此它不可能通过PrintSpooler的子类重新实例化应该达到了你的要求吧Top

10 楼ntzls()回复于 2004-09-02 12:40:20 得分 30

super(n);Top

相关问题

  • 构造函数和[]重载的问题
  • 如何重载FORM的构造函数?
  • 如何防止重载构造函数?
  • 构造函数重载的问题
  • 怎么重载类的构造函数?
  • 如何重载构造函数?
  • 拷贝构造函数能否重载?
  • "重载构造函数"与"重载赋值运算符"
  • 怎样实现函数重载?子类中怎样调用基类的重载函数?
  • 子类如何继承父类的构造函数?

关键词

  • 函数
  • 代码
  • ps
  • printspooler
  • 子类
  • printspoolerchild
  • singletonexception
  • 重载
  • 构造函数
  • 构造

得分解答快速导航

  • 帖主:zengshengbo
  • ntzls

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo