class Container
{
//Component comp;
public void addComponent()
{
// comp = new Component(this);//将this作为对象引用传递
  Component comp = new Component(this);  
}
}
class Component
{
Container myContainer;
public Component(Container c)
{
myContainer = c;
}
public Component()
{
System.out.println("hello!");
}
}class p99
{
public static void main(String [] args)
{
Container Comp = new Container();
Comp.addComponent();
  Component CC= new Component();  这句运行是为什么会报错呀   
}
}

解决方案 »

  1.   

    是不是要这样
    //Component CC= new Component();  这句运行是为什么会报错呀   
    哈哈
      

  2.   

    Component CC= new Component();  //这句运行是为什么会报错呀编译通过,结果是hello!
      

  3.   

    Component CC= new Component(); //这句运行是为什么会报错呀   
    hello!
    这不输出了吗?
      

  4.   

    Component CC= new Component();  这句运行是为什么会报错呀  
    解答:
    因为通常系统自动会给你写的类添加一个默认的析构函数,但是
    如果你在自己的类中定义了带参数的析构函数,那么你就必须自己手动定义默认的析构函数。
    你的Component类就是这种情况。
    你只有加上如下代码即可运行:
    public Component(){}
      

  5.   


    Component 是系统类,它是abstract类 不能被实例化
      

  6.   

    实际上,在这个类里,它没有import java.awt.Component;所以不会重复定义!
    在我这里没有出错!
    你在好好看看!