不知道你是怎么想到toString方法名的,这个方法好像是不能被复盖的。
俺也是才开始学,大家讨论了~我记得在啥地方看见过的这种东西,但是想不起来了,自己试了一下也不清楚怎么弄,就在Employee里面加了一个方法,叫superToStr的,我把你的tiString全部改成toStr了,superToStr方法里调用super.toString();我就是这样写的,不管怎么说能用了。
呵呵,俺这样写有点担心,俺真的才学,不对的地方指正就行了,我谢谢,别埋汰我啊……
class Person {
public void toStr(){
System.out.println("********A*******");
}
}
class Employee extends Person{
public void toStr(){
System.out.println("********B*******");
}
public void supertoStr(){
super.toStr();
}
}
class Factulty extends Employee{}
class st{
public static void main(String[] args){
Factulty SS=new Factulty();
SS.toStr();
SS.supertoStr();
}
}

解决方案 »

  1.   

    阿,那样行么?~
    我那样弄了一下,给Factulty加了个构造函数,里面用的super.super.toStr();为啥不行呢?该咋弄?
      

  2.   

    super.super.toString()是不行的 我试过还有:toString()是Object类里的方法  是可以被覆盖的jiffandu(落城役妖)用的方法似乎可行,谢谢了.但是通用性不好 这样的话要访问父类的方法不是要一层一层的加函数 太麻烦了点 期待更好的方法.谢谢大家的回复了
      

  3.   

    把整个的贴上来 大家看看怎么弄:
    public class Person
    {
    private String name;
    private String address;
    private String phone;
    private String email;

    public Person ()
    {
        String name="defaultvalue";
        String address="defaultvalue";
        String phone="defaultvalue";
        String email="defaultvalue";
    }

    public Person(String name,String address,String phone,String email)
    {
    this.name=name;
    this.address=address;
    this.phone=phone;
    this.email=email;
    }

    public String getName()
    {
    return name;
    }

    public void setName(String name)
    {
    this.name=name;
    }

    public String toString()
    {
    return "class name is:Name  "+"name:"+name;
    }
    }class Students extends Person
    {
    final int Grade1=1;
    final int Grade2=2;
    final int Grade3=3;
    private int grade;

    public Students()
    {
    this(1);
    }

    public Students(int grade)
    {
    super("defaultvalue","defaultvalue","defaultvalue","defaultvalue");
    this.grade=grade;
    }

    public Students(String name,String address,String phone,String email,int grade)
    {
    super(name,address,phone,email);
    this.grade=grade;
    }

    public int getGrade()
    {
    return grade;
    }

    public void setGrade(int grade)
    {
    this.grade=grade;
    }

    public String toString()
    {
    return "class name is:Students  "+"name:"+super.getName();
    }

    }class Employee extends Person
    {
    private int office;
    private double salary;
    private String date;

    public Employee()
    {
    this(1,0.0,"defaultvalue");

    }

        public Employee(String name,String address,String phone,String email,int office,double salary,String date)
    {
    super(name,address,phone,email);
    this.office=office;
    this.salary=salary;
    this.date=date;
    }
     
    public Employee(int office,double salary,String date)
    {   super("defaultvalue","defaultvalue","defaultvalue","defaultvalue");
    this.office=office;
    this.salary=salary;
    this.date=date;

    }

    public int getOffice()
    {
    return office;
    }

    public void setOffice(int office)
    {
    this.office=office;
    }

    public double getSalary()
    {
    return salary;
    }

    public void setSalary(double salary)
    {
    this.salary=salary;
    }

    public String getDate()
    {
    return date;
    }

    public void setDate(String date)
    {
    this.date=date;
    }

    public String toString()
    {
    return "class name is:Employee  "+"name:"+super.getName();

    }class Faculty extends Employee
    {
    private String time;
    private int level;

    public Faculty()
    {   this("00:00",0);
    }

    public Faculty(String time,int level)
    {
        super(1,0.0,"defaultvalue");
    this.time=time;
    this.level=level;
    }

    public Faculty(String name,String time,int level)
    {
        super.setName(name);
    this.time=time;
    this.level=level;
    }


    public String toString()
    {
        //这样写不行,说是没定义
                 return super.super.toString();

    }class Staff extends Employee
    {
    }
      

  4.   

    楼主的代码为什么要访问父类的父类啊,既然Faculty extends Employee那就用Employee的方法了。为什么一定要用PERSON。
      

  5.   

    SS随便写的,你就当它不是东西吧~
    编译器嘛,我也不知道~JAVAC算不算?好像只是个命令,哈哈
      

  6.   

    super.super.toString()是不行的。
    如果你一定要这么用,你还是在调用前先声明一个父类的父类的对象把