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


    子类的继承性

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

    People.java

    package JiCheng;
    
    public class People {
        int age,leg=2,hand=2;
        protected void showPeopleMess() {
            System.out.printf("%d岁,%d只脚,%d只手	",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
    ",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
    ",x,y,result);
            System.out.print("会做乘法:");
            result=geng.multi(x, y);
            System.out.printf("%d*%d=%d
    ",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());
        }
    
    }
  • 相关阅读:
    5-互评-OO之接口-DAO模式代码阅读及应用
    3.1-互评-OO设计-有理数类的设计
    机器学习(3)
    SpringBoot拦截器注入 Service 为空问题
    阿里强制要求的21条Java开发规范【转载】
    动态规划入门
    图神经网络第一章笔记
    PC端工业应用开发宝典3-数据持久化
    PC端工业应用开发宝典2-兼容性问题
    VUE登陆界面监听回车键响应登陆按钮
  • 原文地址:https://www.cnblogs.com/liyajuan333/p/11671896.html
Copyright © 2020-2023  润新知