public class StudentDemo {
 
 
 
 
 
 public static void main(String[] args)
 {   double ag,bg;
 Undergraduate a=new Undergraduate(60,60,70,"本科");
 Graduate b=new Graduate(60,80,70,"研究生");
 
 ag=a.getaverge();
 bg=b.getaverge();
 
 if(ag>=60)
 {System.out.println("本科生拿到学位");
     }
 else
 
 {System.out.println("本科生没拿到学位");
     }
   if(bg>=80)
 {System.out.println("研究生拿到学位");
     }
 else
 
 {System.out.println("研究没拿到学位");
     }  
 }
 
 
 
 
 
}
 class Student
{  double ga,gb,gc;
   int age;
   public  Student(double ga,double gb,double gc)
   {
    this.ga=ga;
    this.gb=gb;
    this.gc=gc;
   
   } 
}
 class Undergraduate extends Student
{   String xuewei;
 public Undergraduate(double ga,double gb,double gc,String xuewei)
 {
  super(ga,gb,gc);
  xuewei=xuewei;
    }
 
public double getaverge()
{return (ga+gb+gc)/3;

}
} class Graduate extends Student
{   String xuewei;
 public Graduate(int ga,int gb,int gc,String xuewei)
 {
  super(ga,gb,gc);
  xuewei=xuewei;
    }
 public double getaverge()
{return (ga+gb+gc)/3;


 
}
里面的class Student编译没通过说是已定义类型 Student。。
应该怎么改?为什么这样改。。

解决方案 »

  1.   

    错误是说你已经定义了一个Student类了。你看看在你的StudentDemo.java同等目录下有没有Student.java?
    有的话,删了Student.java。如果没有,那么有其他java文件吗? 有的话,看看里面有没有写Student这个类。
      

  2.   

    同一个package下不能有两个同名的class,interface,enum等等
      

  3.   

    其实完整的类名=包名+类名
    看看的同一个包下存不存在Student,存在则删除一个,因为包名+类名是唯一的。