abstract class Person
{
private String name;
private String addr;
private char sex;
private int age;
public abstract String getinfo();
private Person()
{

}
private person(String name,String addr)
{
this.setName(name);
this.setAddr(addr);
}
private person(String name,String addr,char sex,int age)
{
this.setName(name);
this.setAddr(addr);
this.setSex(sex);
this.setAge(age);
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public String getAddr()
{
return addr;
}
public void setAddr(String addr)
{
this.addr = addr;
}
public char getSex()
{
return sex;
}
public void setSex(char sex)
{
this.sex = sex;
}
public int getAge()
{
return age;
}
public void setAge(int age)
{
this.age = age;
}
}
class Student extends Person
{
private float math;
private float english;
public Student()
{

}
public Student(String name,String addr)
{
super(name,addr);
}
public Student(String name,String addr,char sex,
       int age,float math,float english)
{
super(name,addr,sex,age);
this.setMath(math);
this.setEnglish(english);
}
public float getMath()
{
return math;
}
public void setMath(float math)
{
this.math = math;
}
public float getEnglish()
{
return english;
}
public void setEnglish(float english)
{
this.english = english;
}
public String getinfo()
{
return "学生信息:"+"\n"+
"\t|- 姓名:" + super.getName() + "\n" + 
"\t|- 年龄:" + super.getAge() + "\n" + 
"\t|- 地址:" + super.getAddr() + "\n" + 
"\t|- 性别:" + super.getSex() + "\n" + 
"\t|- 数学成绩:" + this.getMath() + "\n" + 
"\t|- 英语成绩:" + this.getEnglish() ;
}

}public class Example003
{
public static void main(String[] args)
{
Person per = new Student("张三","北京",'男',12,95.6f,92.3f);
System.out.println(per.getinfo());
}

}各位高人给看看,上边代码哪里出了问题,在eclipse中提示如下错误java.lang.VerifyError: (class: Example003, method: main signature: ([Ljava/lang/String;)V) Incompatible object argument for function call
Exception in thread "main" 

解决方案 »

  1.   

    private Person()
    {}
    private
     person(String name,String addr)
    {
    this.setName(name);
    this.setAddr(addr);
    }
    private person(String name,String addr,char sex,int age)
    {
    this.setName(name);
    this.setAddr(addr);
    this.setSex(sex);
    this.setAge(age);
    }private 改成 public 试试
      

  2.   

    private Person()
    public Personprivate person(String name,String addr)
    public Personprivate person(String name,String addr,char sex,int age)
    public Person
      

  3.   

    这个类都不能编译通过吧;Person类里的构造方法都是private得。
      

  4.   

    楼主的泛型有问题public class Example003
    {
    public static void main(String[] args)
    {
    Person per = new Student("张三","北京",'男',12,95.6f,92.3f);
    /*Person类中根本就没有Student子类的这个构造函数,在子类Student调用
    public Student(String name,String addr,char sex,
    int age,float math,float english)这个方法的时候它首先要调用父类的带有同样参数的构造函数,而如果没有的话它就会报错
    */
    System.out.println(per.getinfo());
    }
    }修改办法:在父类中添加这个构造函数...