5-1 People.java,Student.java,UniverStudent.java, Example5 1.java public class People double height=170,weight=67.9; protected void tellHeightAnd Weight(){ System.out.printf"我的体重和身高.%2.2fkg%2.2 fcmin",weight,height; public class Student extends People int number; void tellNumber(){ System.out.println("我的学号是:"+number); int add(intx,inty){ return x+y; int sub(int x,int y){ returnx-y; 2025/4/2
2025/4/2 11 例5-1 People.java , Student.java , UniverStudent.java , Example5_1.java public class People { double height=170,weight=67.9; protected void tellHeightAndWeight() { System.out.printf("我的体重和身高:%2.2fkg,%2.2fcm\n", weight, height); } } public class Student extendsPeople { int number; void tellNumber() { System.out.println("我的学号是:"+number); } int add(int x,int y) { return x+y; } int sub(int x,int y) { return x-y; } }
public class Example5 1{ 例5-1 public static void main(String args[){ intx=12,y=18: Student zhang new Student(); public class UniverStudent zhang.weight=73.8: extends Student{ zhang height=177: int multi(int x,int y){ zhang.number=100101: returnx*y; zhang tellHeightAndWeight(); zhang tellNumber(); System.out.print('zhang会做加减:")方 doublediv(doublex,doubley){ int result=zhang.add(x,y); return x/y; System.out.printf("d=%d\t",x.y,result), result=zhang.sub(x,y); System.out.printf("d-%d=%dn",xy,result) UniverStudent geng new UniverStudentO); geng.number=6609: geng.tellHeightAndWeight(); geng.tellNumber(): System.out.print("geng会做加减乘除:")方 result=geng.add(x,y); System.out.printf("d+%d=%d\t",x,y,result); result=geng.sub(x,y); System.out.printf(d-%d=%d\t",x.y,result); result=geng.multi(x,y); System.out.printf("dx%d=%dlt"x,y,result); double re=geng.div(x,y); System.out.printf("%d÷%d=%fn",x,y,re方 2025/4/2 2
2025/4/2 12 例5-1 public class UniverStudent extends Student { int multi(int x,int y) { return x*y; } double div(double x,double y) { return x/y; } } public class Example5_1 { public static void main(String args[]) { int x=12,y=18; Student zhang = new Student(); zhang.weight=73.8; zhang.height=177; zhang.number=100101; zhang.tellHeightAndWeight(); zhang.tellNumber(); System.out.print("zhang会做加减:"); int result=zhang.add(x,y); System.out.printf("%d+%d=%d\t",x,y,result); result=zhang.sub(x,y); System.out.printf("%d-%d=%d\n",x,y,result); UniverStudent geng = new UniverStudent(); geng.number=6609; geng.tellHeightAndWeight(); geng.tellNumber(); System.out.print("geng会做加减乘除:"); result=geng.add(x,y); System.out.printf("%d+%d=%d\t",x,y,result); result=geng.sub(x,y); System.out.printf("%d-%d=%d\t",x,y,result); result=geng.multi(x,y); System.out.printf("%d×%d=%d\t",x,y,result); double re=geng.div(x,y); System.out.printf("%d÷%d=%f\n",x,y,re); } }
5-1 People.java,Student.java,UniverStudent.java, Example5 1.java 例5-l中有4个类:People,Student.java, UniverStudent.java和Examples5I,这些类都没有包名 (需要分别打开文本编辑器编写、保存这些类的源文件, 如保存到C:ch5目录中),其中,UniverStudent类是 Student的子类,Student是Peoplel的子类 C:\ch5>java Example5_1 我的体重和身高:73.80k3,177.00cm 我的学号是:100101 zhang会做加减:12+18=3012-18=-6 我的体重和身高:B7.90kg,170.00cm 我的学号是:6609 gemg会做加减乘除:12+18=30 12-18=-6 12×18-=216 12÷18=0.666667 图5.1 子类的继承性 2025/4/2 3
2025/4/2 13 例5-1 People.java , Student.java , UniverStudent.java , Example5_1.java 例5-1中有4个类:People,Student.java, UniverStudent.java和Example5_1,这些类都没有包名 (需要分别打开文本编辑器编写、保存这些类的源文件, 如保存到C:\ch5目录中),其中,UniverStudent类是 Student的子类,Student是People的子类
class PersonA private String name; public void setName(String newName){ 练习: name newName; public String getName(){ 补充代码 return name; class StudentA【代码1】{/继承PersonA类 private String department; public void setDepartment(String newDepartment){ department=newDepartment; public String getDepartment(){ return department; class C1 public static void main(String[args){ StudentAs1 new StudentAO: 【代码2】/调用setName方法,传入参数"张三" 代码3】/调用setDepartment方法,传入参数"计算机学院" 代码4】/显示s1的姓名 代码5】1∥显示s1的学院
练习: 补充代码 class PersonA{ private String name; public void setName(String newName){ name = newName; } public String getName(){ return name; } } class StudentA 【代码1】{//继承PersonA类 private String department; public void setDepartment(String newDepartment){ department = newDepartment; } public String getDepartment(){ return department; } } class C1{ public static void main(String[] args){ StudentA s1 = new StudentA(); 【代码2】//调用setName方法,传入参数"张三" 【代码3】//调用setDepartment方法,传入参数"计算机学院" 【代码4】//显示s1的姓名 【代码5】//显示s1的学院 } }
§5.2.2子类和父类不在同一包中的继承性 如果子类和父类不在同一个包中,那么,子 类继承了父类的protected、public成员变量做 为子类的成员变量,并且继承了父类的 protected、public方法为子类的方法,继承的 成员或方法的访问权限保持不变。 父类中友好和orivate,成员变量和方法不能 被子类继承。 2025/4/2
2025/4/2 15 §5.2.2 子类和父类不在同一包中的继承性 如果子类和父类不在同一个包中,那么,子 类继承了父类的protected、public成员变量做 为 子 类 的 成 员 变 量 , 并 且 继 承 了 父 类 的 protected、public方法为子类的方法,继承的 成员或方法的访问权限保持不变。 父类中友好和private成员变量和方法不能 被子类继承