例4.1
JPeople.java
public class JPeople
{
String name;
char sex;
int age;
public String getName()
{
return name;
}
public char getSex()
{
return sex;
}
public int getAge()
{
return age;
}
}
例4.2
JStudent.java
public class JStudent extends JPeople
{
String studentID;
String major;
String name; // 定义一个和父类成员同名的成员变量name
public String getName() //定义一个和父类成员同名的成员方法getName()
{
return "王五";
}
public String getName2()
{
super.name="张三"; //获得父类被隐藏的成员变量name
return super.getName(); //调用父类被隐藏的成员方法getName()
}
public String getMajor()
{
return major;
}
public String getStudentID()
{
return studentID;
}
}
例4.3
JTeacher.java
public class JTeacher extends JPeople
{
String teacherID;
String department;
public String getDepartment()
{
return department;
}
public String getTeacherID()
{
return teacherID;
}
}
例4.4
JStudentTest.java
public class JStudentTest
{
public static void main(String[] args)
{
JStudent student = new JStudent();
JPeople p1 = new JStudent();
JPeople p2 = new JTeacher();
student.name = "赵六";
System.out.println("学生姓名是: " + student.name);
System.out.println("学生姓名是: " + student.getName());
System.out.println("学生姓名是: " + student.getName2());
}
}
例4.5
JMiddleStudent.java
public class JMiddleStudent extends JStudent
{
public static void main(String[] args)
{
JMiddleStudent middleStudent = new JMiddleStudent();
System.out.println("name ="+middleStudent.name);
System.out.println("major ="+middleStudent.major);
System.out.println("age ="+middleStudent.getAge());
}
}
例4.6
JPeople2.java
public class JPeople2
{
private String name;
private char sex;
private int age;
public JPeople2(String name, char sex, int age)
{
this.name = name;
this.sex = sex;
this.age = age;
}
public String getDetails()
{
return "Name:" + name + "\nsex:" + sex + "\nage: " + age;
}
}
例4.7
JStudent2.java
public class JStudent2 extends JPeople2
{
private String studentID;
private String major;
public JStudent2(String name, char sex, int age, String stuID, String major)
{
super(name, sex, age);
this.studentID = stuID;
this.major = major;
}
public String getDetails()
{
return super.getDetails() + "\nStudentID:" + studentID + "\nMajor:"
+ major;
}
public String getDetails(String s)
{
return super.getDetails() + "\nStudentID:" + studentID + "\nMajor:"
+ major;
}
public static void main(String[] srgs)
{
JStudent2 s = new JStudent2("张三", '男', 22, "2013030507", "计算机");
System.out.println(s.getDetails());
}
}
例4.8
JPersonTest.java
class JPerson
{
int personId;
public JPerson()
{
personId=10;
}
}
class JSubPerson extends JPerson
{
}
public class JPersonTest
{
public static void main(String args[])
{
JSubPerson j1 = new JSubPerson();
System.out.println(j1.personId);
}
}
例4.9
JPersonTest2.java
class JPerson2
{
int personId;
public JPerson2()
{
personId=10;
System.out.println("现在personId的值是"+personId);
}
}
class JSubPerson2 extends JPerson2
{
public JSubPerson2(int i)
{
personId=i;
System.out.println("现在personId的值是"+personId);
}
}
public class JPersonTest2
{
public static void main(String args[])
{
JSubPerson2 j2 = new JSubPerson2(100);
}
}
例4.10 JPersonTest3.java
class JPerson3
{
int personId;
public JPerson3()
{
}
public JPerson3(int i)
{
personId = i;
System.out.println("现在personId的值是" + personId);
}
public JPerson3(int i, int j)
{
personId = i + j;
System.out.println("现在personId的值是" + personId);
}
}
class JSubPerson3 extends JPerson3
{
public JSubPerson3()
{
}
public JSubPerson3(int i)
{
super(i); // 该语句只能位于构造方法第一行
// super(i,1000);
System.out.println("现在personId的值是" + personId);
}
}
public class JPersonTest3
{
public static void main(String args[])
{
JSubPerson3 j3 = new JSubPerson3(100);
JSubPerson3 j4 = new JSubPerson3();
}
}