现在有两个包,下面的是第一包,在第二个包里看不到GraduateStudent类...package com.neusoft.vo;
public class Student {
public String name;
public String sex;
public int age;
public String schoolName; public Student (){}
public Student(String name,String sex,int age,String schoolName){
this.name=name;
this.sex=sex;
this.age=age;
this.schoolName=schoolName;
} class GraduateStudent extends Student {
String specialityl;
String teacher;
public GraduateStudent(){}
public GraduateStudent(String name,String sex,int age,String schoolName,String specialityl,String teacher){
super.name=name;
super.sex=sex;
super.age=age;
super.schoolName=schoolName;
this.specialityl=specialityl;
this.teacher=teacher;
}
package test;
import com.neusoft.vo.*;
public class TestStudentAndGraduateStudent extends Student {
public static void main(String[] args) {
Student zhou[]=new Student[2];
zhou[0]=new Student("赵大","男",19,"华南理工大学");
//不知道下面这样写可不可以,是Student 的引用然后是GraduateStudent类型的数组。应该行的吧
zhou[1]=new GraduateStudent("孙三","男",25,"华南师范大学","教育学","李四");总是显示GraduateStudent不可见把它修饰成public 的话,Student类又看不到了
折磨了很久都不懂。。
刚学啊。。很多都不懂。。请大牛们解答
public class Student {
public String name;
public String sex;
public int age;
public String schoolName; public Student (){}
public Student(String name,String sex,int age,String schoolName){
this.name=name;
this.sex=sex;
this.age=age;
this.schoolName=schoolName;
} class GraduateStudent extends Student {
String specialityl;
String teacher;
public GraduateStudent(){}
public GraduateStudent(String name,String sex,int age,String schoolName,String specialityl,String teacher){
super.name=name;
super.sex=sex;
super.age=age;
super.schoolName=schoolName;
this.specialityl=specialityl;
this.teacher=teacher;
}
package test;
import com.neusoft.vo.*;
public class TestStudentAndGraduateStudent extends Student {
public static void main(String[] args) {
Student zhou[]=new Student[2];
zhou[0]=new Student("赵大","男",19,"华南理工大学");
//不知道下面这样写可不可以,是Student 的引用然后是GraduateStudent类型的数组。应该行的吧
zhou[1]=new GraduateStudent("孙三","男",25,"华南师范大学","教育学","李四");总是显示GraduateStudent不可见把它修饰成public 的话,Student类又看不到了
折磨了很久都不懂。。
刚学啊。。很多都不懂。。请大牛们解答
public class Student {
public String name;
public String sex;
public int age;
public String schoolName; public Student (){}
public Student(String name,String sex,int age,String schoolName){
this.name=name;
this.sex=sex;
this.age=age;
this.schoolName=schoolName;
}
package com.neusoft.vo;
public class GraduateStudent extends Student {
String specialityl;
String teacher;
public GraduateStudent(){}
public GraduateStudent(String name,String sex,int age,String schoolName,String specialityl,String teacher){
super.name=name;
super.sex=sex;
super.age=age;
super.schoolName=schoolName;
this.specialityl=specialityl;
this.teacher=teacher;
}
我把它们分成两个文件,还是不行呢在GraduateStudent还是不可见。。package com.neusoft.vo;
public class Student {
public String name;
public String sex;
public int age;
public String schoolName; public Student (){}
public Student(String name,String sex,int age,String schoolName){
this.name=name;
this.sex=sex;
this.age=age;
this.schoolName=schoolName;
}
}
package com.neusoft.vo;
public class GraduateStudent extends Student {
public String specialityl;
public String teacher;
public GraduateStudent(){}
public GraduateStudent(String name,String sex,int age,String schoolName,String specialityl,String teacher){
super.name=name;
super.sex=sex;
super.age=age;
super.schoolName=schoolName;
this.specialityl=specialityl;
this.teacher=teacher;
}
}
另外的一个包,在这里调用不了GraduateStudent
package test;
import com.neusoft.vo.*;
public class TestStudentAndGraduateStudent {
public static void main(String[] args) {
Student zhou[]=new Student[6];
zhou[0]=new Student("赵大","男",19,"华南理工大学");
zhou[1]=new Student("钱二","男",17,"中山大学");
//这里报错,总是显示GraduateStudent不可见。
zhou[2]=new GraduateStudent("孙三","男",25,"华南师范大学","教育学","李四");
zhou[3]=new Student("周五","女",18,"东软学院");
zhou[4]=new GraduateStudent("吴六","女",24,"清华大学","工商企业管理","郑七");
zhou[5]=new Student("罗八","男",18,"佛山科技大学");
// 找出其中女的信息然后修改。
for(int i=0;i<zhou.length;i++){
if(zhou[i].sex.equals("女")){
zhou[i].schoolName="广东工业大学";
}
}
// 输出学生的信息。
for(int i=0;i<zhou.length;i++){
System.out.println("姓名:"+zhou[i].name+"\n"+"性别:"+zhou[i].sex+"\n"+"年龄:"+zhou[i].age+"\n"+"学校:"+zhou[i].schoolName+"\n"+"专业:"
+zhou[i].specialityl+"\n"+"导师:"+zhou[i].teacher);
}
}}代码有点乱,不好意思了
+zhou[i].specialityl+"\n"+"导师:"+zhou[i].teacher);这里肯定要报错的,因为Student里面没有specialityl和teacher这两个属性。
GraduateStudent gs = (GraduateStudent)zhou[i];
}
这样强制转换成GraduateStudent,然后再获取