第5章-子類與繼承-子類與父類在同一包中的繼承性
阿新 • • 發佈:2019-02-04
問題:
同一個包中三個類,people是student的父類,student是universtudent的父類,Test中進行呼叫
程式碼:
People.java
public class People {
double height=170,weight=67.9;
protected void tellHeightAndWeight(){
System.err.printf("my weight is %2.2fkg,my height is:%2.2fcm\n",weight,height);//注意輸出的格式
}
}
Student.java
public class Student extends People{ int number; void tellNum(){ System.out.println("my number is :"+number); } int add(int x,int y){ return x+y; } int sub(int x,int y){ return x-y; } }
Universtudent.java
public class Universtudent extends Student{
int multi(int x,int y){
return x*y;
}
double div(double x,double y){//返回的型別和傳進來的引數及運算結果要相符
return x/y;
}
}
Test.java
public class Test { 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.tellNum(); System.out.println("zhang can do add and sub !!"); int result=zhang.add(x,y); System.out.printf("%d+%d=%d\n",x,y,result);// /t換行 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.tellNum(); System.out.println("geng can do add .sub.multi.div!"); result=geng.add(x,y); System.out.printf("%d+%d=%d\n",x,y,result); result=geng.sub(x,y); System.out.printf("%d-%d=%d\n",x,y,result); result=geng.multi(x,y); System.out.printf("%d*%d=%d\n",x,y,result); double re=geng.div(x,y);//需要重新設一個變數,因為result的型別是整形 System.out.printf("%d/%d=%f\n",x,y,re); } }
執行結果:
總結:子類繼承父類的成員變數作為自己的一個成員變數,就好像他們在子類中直接聲明瞭一樣,可以被子類中自己定義的任何例項方法操作。
子類繼承父類除private訪問許可權以外的其他成員變數作為子類的成員變數。