这种情况很少见,下面的情况类似,很常见。public interface p{
......
}public class c elmentments p{
    public c(p p1){
     ....
    }
......
}

解决方案 »

  1.   

    这个类应该至少有两个构造函数吧,一个是Total(),另外还包括现在这个Total(Total tal),也就是说在new这个类的实例的时候,会用到不同的构造函数,进行不同的初始化动作。个人见解,如有不对还请高人指点
      

  2.   

    真的很少见啊。 同意  topil(认认真真学习,塌塌实实工作) 的观点,“这个类应该至少有两个构造函数吧,一个是Total(),另外还包括现在这个Total(Total tal),也就是说在new这个类的实例的时候,会用到不同的构造函数,进行不同的初始化动作。”要不就没办法初始化这个类了。
    除非Total t = new Total(null);因为系统只有在没有构造函数的时候才使用默认的,如果存在构造函数,就不会采用默认的。总之,这个很少用的,也没看到哪个设计模式提到,楼主少用就是了。
      

  3.   

    我是楼主,没错是有一个Total()的,如果是Total(int a)这样当然一点也不奇怪了,
    但是Total(Total tal)却让人看不懂,Total是类名,Total tal应该代表默认的构造函数
    Total()吧?为什么要这样用呢,能解决什么特殊的需求吗,各位老大能否再讲得详细呢
      

  4.   

    楼主要不就把代码贴出来,要不就自己分析一下,代码里哪个部分用到了Total tal这个被传入的对象,再分析当前的对象和tal做了什么操作。
      

  5.   

    这种情况在DECORATOR模式和COMPOSITE模式中常出现
      

  6.   

    to  topil(认认真真学习,塌塌实实工作) :这个类应该至少有两个构造函数吧,一个是Total(),另外还包括现在这个Total(Total tal),也就是说在new这个类的实例的时候,会用到不同的构造函数,进行不同的初始化动作。个人见解,如有不对还请高人指点////////////////////////////////////////////////////////////////////////
    楼上这个大哥说的不太对!
    因为如果你不自己建立一个构造函数的话,编译器会给定一个默认的构造函数!
    但是一旦你已经设定了一个构造函数的话,编译器就不会再给你一个默认的构造函数了!如果你想自己建立一个构造函数,还想默认的构造函数!那你就必须采用重载才实现!
    比如:
    public class Total{    Total(){}    Total(Total tal){}
    }