老是下面的提示:implicit super constructor Person() is undefined for default constructor .Must define an explicit constructor.
源程序如下:(我用的是eclipse编译器,还有我想问一下java的开发工具选择哪一个比较好用.)
package test;class Person
{
protected String name;
protected int age;
public Person(String name,int age)
{
this.name=name;
this.age=age;
}
public void print()
{
System.out.println("Name:"+name+"\nAge:"+age);
}
}
class Student extends Person
{
}
class Test {
public static void main(String args[])
{
}
}
源程序如下:(我用的是eclipse编译器,还有我想问一下java的开发工具选择哪一个比较好用.)
package test;class Person
{
protected String name;
protected int age;
public Person(String name,int age)
{
this.name=name;
this.age=age;
}
public void print()
{
System.out.println("Name:"+name+"\nAge:"+age);
}
}
class Student extends Person
{
}
class Test {
public static void main(String args[])
{
}
}
public Person()
{
}
byKathy SierraandBert Bates
McGraw-Hill/Osborne 2006 (864 pages)
ISBN:0072253606
public Person()
{}
就可以了
protected String name;
protected int age;////你已经定义了自动的构造函数,此时编译器不会为你创建默认的构造函数
public Person(String name,int age) {
this.name=name;
this.age=age;
}
public void print() {
System.out.println("Name:"+name+"\nAge:"+age);
}
}//由于父类的构造函数是有掺的,所以编译不会为你自动调用默认的构造函数,此时,子类在自
//己的构造函数中必须显示的调用父类的构造函数
class Student extends Person {
public Student(){ //子类构造函数
//super(); //不行,因为你的父类没有无参的构造函数
super("a",1); //显示调用父类的构造函数,而且必须是第一行调用
}
}
class Test {
public static void main(String args[]){
}
}
super("a",1);是给Student这个类初始化吗?
比如:Studnet这个子类我要添加学生编号.那调用父类的构造函数的话.
因为父类的构造函数只定义了两个属性.如果把子类新添加的属性也打印出来呢?
我是java初学者.我酷爱编程想和一些喜欢编程人交朋友.
有好多地方不太懂.还请大家多多帮忙.谢谢了....