子类的继承性
一:子类和父类在同一个包中的继承性
People.java
package JiCheng; public class People { int age,leg=2,hand=2; protected void showPeopleMess() { System.out.printf("%d岁,%d只脚,%d只手\t",age,leg,hand); } }
Student.java
package JiCheng; public class Student extends People{ int number; void tellNumber() { System.out.println("学号:" + number); } int add(int x,int y) { return x+y; } }
UniverStudent.java
package JiCheng; public class UniverStudent extends Student{ int multi(int x,int y) { return x*y; } }
fangwen.java
package JiCheng; public class fangwen { public static void main(String[] args) { Student zhang=new Student(); zhang.age=17; //访问继承的成员变量 zhang.number=100101; zhang.showPeopleMess(); //调用继承的方法 zhang.tellNumber(); int x=9,y=29; System.out.print("会做加法:"); int result=zhang.add(x, y); System.out.printf("%d+%d=%d\n",x,y,result); UniverStudent geng=new UniverStudent(); geng.age=21; //访问继承的成员变量 geng.number=6609; //访问继承的成员变量 geng.showPeopleMess(); //调用继承的方法 geng.tellNumber(); //调用继承的方法 System.out.print("会做加法:"); result=geng.add(x, y); //调用继承方法 System.out.printf("%d+%d=%d\n",x,y,result); System.out.print("会做乘法:"); result=geng.multi(x, y); System.out.printf("%d*%d=%d\n",x,y,result); } }
运行结果如下:
17岁,2只脚,2只手 学号:100101
会做加法:9+29=38
21岁,2只脚,2只手 学号:6609
会做加法:9+29=38
会做乘法:9*29=261
二:子类和父类不在同一包中的继承性
当子类和父类不在同一个包中时,父类中的private和友好访问权限的成员变量不会被子类继承,也就是说,子类只继承父类中的protected和public 访问权限的成员变量作为子类的成员变量;同样,子类只继承父类中的protected和public访问权限的方法作为子类的方法。
子类与对象
实例:
package duixiang; class People{ private int averHeight=166; public int getAverHeight() { return averHeight; } } class ChinaPeople extends People{ int height; public void setHeight(int h) { //height=h+averHeight; //非法,子类没有继承averHeight,averHeight为private成员变量 height=h; } public int getHeight() { return height; } } public class Yuduixiang { public static void main(String[] args) { ChinaPeople zhangSan=new ChinaPeople(); System.out.println("子类对象未继承的averHeight的值是:"+zhangSan.getAverHeight()); zhangSan.setHeight(178); System.out.println("子类对象的实例变量height的值是:"+zhangSan.getHeight()); } }