具体代码如下:
class People{
int age,leg=2,hand=2;
protected void showPeopleMess(){
System.out.printf("%d岁,%d只脚,%d只手\t",age,leg,hand);
}
}
class Student extends People{
int number;
void tellNumber(){
System.out.printf("学号:%d\t",number);
}
int add(int x,int y){
return x+y;
}
}
class UniverStudent extends Student{
int multi(int x,int y){
return x*y;
}
}
public class E4{
public static void main(String args[]){
Student zhang=new Student();//申明对象并创建。//
zhang.age=17;//访问继承的成员变量,即父类中不是private的成员变量。//
zhang.number=100101;//访问自己的变量并初始化赋值。//
zhang.showPeopleMess();//调用继承的方法,即父类中不是private的方法。//
zhang.tellNumber();//调用自己的方法。//
int x=9,y=29;
System.out.print("会做加法:");
int result=zhang.add(x,y);//调用自己的方法,传值给方法add,把结果赋给result。//
System.out.printf("%d+%d=%d\n",x,y,result);
UniverStudent geng=new UniverStudent();
geng.age=18;
geng.number=6609;//访问继承的成员变量,父类Student。//
geng.showPeopleMess();
geng.tellNumber();//调用继承的方法,父类Student。//
System.out.print("会做加法:");
result=geng.add(x,y); //调用继承的方法,父类Student。//
System.out.printf("%d+%d=%d\t",x,y,result);
System.out.print("会做乘法:");
result=geng.multi(x,y);//调用自己的方法。//
System.out.printf("%d*%d=%d\n",x,y,result);
}
}
//如子类与父类在同一包中,子类就继承父类中不是private的成员变量和方法,作为自己的成员变量和方法,其访问权限不变,如:protected型,继承后还是protected型。
运行结果如下: