zoukankan      html  css  js  c++  java
  • java中子类对父类中的私有变量和私有方法有拥有权无使用权

    解释的我觉得也到位:子类拥对父类的私有变量具有拥有权 但是不具有使用权。

    再和以前学的东西联系起来,总结如下:

    1、不管父类中的成员变量是静态的还是非静态的,子类统统拥有(这里不用继承概念)。

    2、不管父类中的成员变量是被子类隐藏了还是没有被子类隐藏,子类统统拥有

    3、不管父类中的成员变量是私有的还是其他,子类统统拥有,但是私有的不能被子类直接访问,只能通过从父类中继承的set和get方法来访问。就像上面那句话说的那样,对父类的私有变量具有拥有权,但是不具有使用权,只能通过从父类中继承的set和get方法来使用。

    今天看spring源码,不经意间发现了一问题:在一个抽象类中定义了一个私有成员变量。

    仔细想想:抽象类不能被实例化的,只能被子类继承。但是自从学java的继承只有,我们就知道,子类不能继承父类的私有成员变量或方法的。

    问题:在该抽象方法中定义这个私有变量有什么用呢?或者说这个私有成员变量再什么地方用得到呢?

    所以自己做了一个测试如下:

    public abstract class Fatherclass {

        private int privatenumber;

        

        public int getPrivatenumber() {

            return privatenumber;

        }

        public void setPrivatenumber(int privatenumber) {

            this.privatenumber = privatenumber;

        }

    }

    public class Childclass extends Fatherclass{

        public static void main(String[] args) {

            Childclass childclass=new Childclass();

            Childclass1 childclass1=new Childclass1();

            childclass.setPrivatenumber(125);

            System.out.println(childclass.getPrivatenumber());

            System.out.println(childclass1.getPrivatenumber());

        }

    }

    public class Childclass1 extends Fatherclass {

        

    }

    运行结果如下:

    125

    0

    通过测试,我们发现子类确实继承了父类的私有属性(也可以说是子类拥有一个属性,继承自父类,但是该属性的访问权限暂时不确定),但是我们无法通过子类直接访问该(继承自父类私有属性)的属性。我暂且该这种属性的访问权限起名为fatherprivate(意为继承自父类私有属性)

    通过浏览博客,发现一篇博客对上面情况总结的很好:http://blog.csdn.net/frank_jb/article/details/42739785

  • 相关阅读:
    RabbitMQ In JAVA 介绍及使用
    JSON Web Token 入门教程
    char* 与 char[] 的区别
    C++ namespace的用法
    启动其他APK的Activity方法 (转至http://www.cnblogs.com/lijunamneg/archive/2013/02/26/2934060.html)
    Android多任务切换与Activity启动模式SingleTask之间关系的分析
    对SingleTask和TaskAffinity的理解(转至 http://www.2cto.com/kf/201311/254450.html)
    正在运行的android程序,按home键之后退回到桌面,在次点击程序图标避免再次重新启动程序解决办法
    大牛的博客
    Androidpn 简单实现及分析
  • 原文地址:https://www.cnblogs.com/celine/p/8792956.html
Copyright © 2011-2022 走看看