zoukankan      html  css  js  c++  java
  • Java基础 成员变量的继承与覆盖

    通过继承可以得到父类的成员变量,子类的成员变量包括从父类继承的成员变量(包括从祖先类中继承的成员变量)以及子类中重新定义的成员变量。本次介绍内容包括:可以继承哪些成员?如果子类和父类出现了相同的成员变量如何处理?

    1、可以继承的成员变量

    可以继承的成员变量与成员变量的访问控制类型有关,成员变量的访问控制类型包括public、protected、缺省的和private。

    子类继承父类之后,可以继承父类的public和protected类型的成员变量。例如:

    public class Parent{

          public int i_public;

          int i_default;

          protected int i_protected;

          private int i_private;

    }

    public class Child extends Parent{

          private int i_child;

    }

    父类的成员变量包括:

          public int i_public;

          int i_default;

          protected int i_protected;

          private int i_private;

    子类的成员变量包括:

          public int i_public;             // 继承自父类

          protected int i_protected;// 继承自父类

          private int i_child;             //在子类中声明的

    2、覆盖父类的成员变量

    假设父类中定义了成员变量a并且能够被子类继承,子类中又定义了成员变量a,这样子类中会有两个名字为a的成员变量,如何访问呢?

    先看下面的例子:

    public class Parent{

          public int a=10;

    }

    public class Child extends Parent{

          public int a=20;

    }

    pubilc class Test{

          public static void main(String args[]){

                 Child child = new Child();

                 System.out.println(child.a);

          }

    }

    运行结果应该是什么呢?

    结果应该为20,也就是子类中定义的变量的值。

    如果想访问父类中定义的成员变量,如何访问呢?首先把child转换成Parent类型,然后再访问。

    System.out.println(((Parent)child).a);

    如果在child类中如何访问自己的成员和父类的成员内,通过super来访问,例如下面的代码:

        public int getParentA(){
         return super.a;
        }
        public int getChildA(){
         return a;
        }

    访问子类的成员变量可以使用this,例如下面的代码:

        public int getChildA(){
         return this.a;
        }

    注意:

    1)从父类继承的成员变量,其访问控制符仍然相同。

    2)子类定义与父类同名的成员变量,并没有覆盖父类的成员变量,而是两个成员变量共存

  • 相关阅读:
    Docker可视化管理工具Portainer
    Spring Cloud,Docker书籍资源、优秀博文等记录
    Grafana部署监控docker服务
    Grafana+Prometheus通过node_exporter监控Linux服务器信息
    Prometheus+Grafana+kafka_exporter监控kafka
    k8s gpu 资源设置
    mysql 塞数据
    idea 插件
    ubuntu 升级内核
    清华镜像站安装docker
  • 原文地址:https://www.cnblogs.com/aademeng/p/6129796.html
Copyright © 2011-2022 走看看