java 子类的继承性

5.2 子类的继承性
        类可以有两种重要的成员:成员变量和方法。子类的成员中有一部分是子类自己声明、定义的,另一部分是从它的父类继承的。那么,什么叫继承呢?所谓子类继承父类的成员变量作为自己的一个成员变量,就好像它们是在子类中直接声明一样,可以被子类中自己定义的任何实例方法操作,也就是说,一个子类继承的成员应当是这个类的完全意义的成员,如果子类中定义的实例方法不能操作父类的某个成员变量,该成员变量就没有被子类继承;所谓子类继承父类的方法作为子类中的一个方法,就像它们是在子类中直接定义了样,可以被子类中自己定义的任何实例方法调用。

    5.2.1 子类和父类在同一包中的继承性
        如果子类和父类在同一个包中, 那么,子类自然地继承了其父类中不是private的成员变最作为自己的成员变量,并且也自然地继承了父类中不是Pivate的方法作为自己的方法,继承的成员变量或方法的访问权限保持不变。下面的例子1中有4个类: Pcople.、Student.java、 UnivrStudent.java和Eaxmple5_1,这此类都没有包名(需要分别打开文本编辑器编写、保存这些类的源文件,例如保存到C:\ch5目录中),其中UniverStudent 类是Student的子类,StudentPople的子类。 

例子:
    People.java
public class People{
    int age,leg = 2,hand = 2;
    protected vold showPelpleMess(){
    system,out.printf("%d岁,%d只脚,%d只手\t",age, leg,hand);
    }
}

    Student.java

public class Student extends People  {
  int number;
  void tellNumber() {
      System.out.printf("学号:%d\t",number);
    }
  int add(int x,int y) {
      return x+y;
    }
}

     UniverStudent.java

public class UniverStudent extends Student {
    int multi(int x,int y){
        return x*y;
    }
}
    Example5_1.java
package myJava;
import java.*;
import java.util.Scanner;
public class Example5_1 {  
    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.print("%d+%d=%d\t”,x,y,result");
        System.out.print("会做乘法:");
        Result=geng.multi(x,y);  
        System.out.print("%d*%d=%d\t",x,y,result); 
    }  
}
    5.2.2 子类和父类不在同一包中的继承性
        当子类和父类不在同一个包中时,父类中的private和友好访问权限的成员变量不会被子类继承,也就是说,子类只继承父类中的protected和public访问权限的成员变量作为子类的成员变量;同样,子类只继承父类中的proected和public访问权限的方法作为子类的方法。

猜你喜欢

转载自blog.csdn.net/qq_40956679/article/details/80696918
今日推荐