子类的继承性,子类与对象

子类的继承性

一:子类和父类在同一个包中的继承性

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());
    }

}

 

posted @ 2019-10-14 15:51  失忆_诗意  阅读(786)  评论(0编辑  收藏  举报