A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 杨华东 中级黑马   /  2012-10-1 14:56  /  2019 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 杨华东 于 2012-10-1 15:01 编辑

//关于继承的效率问题。请教大家。多多指教哦。嘿嘿嘿。
Fu
{
        //把父类构造函数私有化后,哥们都知道绝对不会在外部被创建对象。
       private Fu(){}
       //但是我们,可以对外提供访问规则。如下:
       public static  getInstance()
                             {
                                   Fu();
                              }
}
  //子类继承父类。
Zi extends Fu
{
      Zi()
        {
           //super语句的一种方式。
           super.getInstance();
        }
}
class Test{
   public static void main(String[] args){
              Zi  z = new Zi ();
}
}

//匆忙之际 写的(可能哪里有小错误,给我指出来。)  希望大家明白偶的意思。我的问题:上述这种初始化子类对象  和传统的哪个效率高点?或者说哪个好一些?
请大侠们指教。万分感谢。

评分

参与人数 1技术分 +1 收起 理由
唐志兵 + 1 赞一个!

查看全部评分

8 个回复

倒序浏览
你这种情况就是我的基础测试题。
个人觉得肯定是公有构造函数效率高!因为你这样做,无形之中又给程序执行增加了负担。
当你 new Zi();时,本来没有私有时,有系统直接调用构造函数初始化,而你在这个程序当中又在类中实现调用,又要多开辟内存,效率自然就低,所以书上的东西都是人们总结了的。

评分

参与人数 1技术分 +1 收起 理由
唐志兵 + 1 赞一个!

查看全部评分

回复 使用道具 举报
恩恩  有道理哈
回复 使用道具 举报
恩恩,呵呵。多多交流!
回复 使用道具 举报
本帖最后由 翁鹏 于 2012-10-2 21:18 编辑

我觉得你这个设计的有问题!     你的父类是个不怎么完整的    单例设计模式   的代码。

class Fu
{
         private static final Fu f = new Fu();
         private Fu()
         {}
         public static void getInstance()
         {
                     return  f;
         }
}

所以,直接用Fu.getInstance()就可以获得唯一的一个对象。
回复 使用道具 举报
本帖最后由 娇赛赛 于 2012-10-2 22:11 编辑


回复 使用道具 举报
单例模式!~ java23种设计冒失之一,效率时情况而定,没有比较性~
回复 使用道具 举报
似的  了解了  谢谢你们啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马