______________________________________________________________________
问题代码:class N1{
String name;
N1(String uName)
{
name=uName;
System.out.println("主类:"+name);
}
}class N2 extends N1{
String type;
N2(String uType)
{
type=uType;
System.out.println("子类:"+type);
}
}public class Test{
public static void main(String [] args)
{
N1 host=new N1("Mr Wang");
}
}
_______________________________________________________________
运行:
javac Test.java
===============================
报错信息:
Test.java:13: 找不到符号
符号: 构造函数 N1()
位置: 类 N1
        {
        ^
1 错误
________________________________________________________________
高手帮帮我~是不是不可以这么编辑运行啊~?

解决方案 »

  1.   


    class N1 {
    String name; N1(String uName) {
    name = uName;
    System.out.println("主类:" + name);
    }
    }class N2 extends N1 {
    String type; N2(String uType) {
    super(uType);
    type = uType;
    System.out.println("子类:" + type);
    }
    }public class Test {
    public static void main(String[] args) {
    N1 host = new N1("Mr Wang");
    }
    }
      

  2.   

    super调用父类的构造函数,不加也行,不过得放一个空的父类的构造函数.
    N1() { }
      

  3.   

    因为子类默认调用父类的构造函数就是通过super();来调用父类的默认构造函数
      

  4.   

    默认的构造函数是不带参数的,但是如果你实现的带参数的构造函数那么不带参数的就没有了,当派生类要调用父类的带参数构造函数就要在第一行写super(...);