A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 沙子 中级黑马   /  2014-12-17 19:36  /  1875 人查看  /  12 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

问题5:父类的成员变量私有化之后,子类依然继承,但不能直接访问,那么该如何访问?

12 个回复

倒序浏览
定义方法
private String name;
public void getName(String name){

this.name=name;
}
this指的是调用的那个对象。new一个对象之后调用getName方法就可以访问
回复 使用道具 举报
对于私有的成员变量,一般都是使用public的get和set方法来进行访问。
父类:
package test;

public class Test {

    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}
子类:
package test;

public class Test2 extends Test {
    public static void main(String[] args) {
        Test2 t = new Test2();
        t.setName("aaa");
        System.out.println(t.getName());
    }
}

对于父类私有的成员不能在父类外访问,但是可以使用父类的共有方法来访问。就是get和set
回复 使用道具 举报
如果该成员变量需要共享,那么可以定义为静态变量,直接用类名访问
如果是普通成员变量,那就写个get方法,set方法访问。
实际上,一但被定义为私有成员变量,就一定要有public修饰的成员方法来访问,这是设计一个类的基本原则规范。
回复 使用道具 举报
那就在父类中定义函数去访问父类的成员变量。
回复 使用道具 举报
父类的私有,子类就算继承了也没用,打个比方:你爸把他的财产能继承给你,他能把他的知识继承给你么,肯定不行啊
回复 使用道具 举报
I空空 中级黑马 2014-12-18 00:20:41
7#
写一个public的调用该成员变量的方法即可,参考单例模式
回复 使用道具 举报
this and base
回复 使用道具 举报
董晗 中级黑马 2014-12-18 18:23:06
9#
6楼回复亮了
回复 使用道具 举报
写个public方法
回复 使用道具 举报
定义一个public方法,通过这个方法再来调用
回复 使用道具 举报
要访问父类的私有化成员,只能通过父类提供的方法访问,如果没有提供方法就无法访问。
回复 使用道具 举报
找寻小龙猫 来自手机 中级黑马 2014-12-19 23:32:32
13#
六楼好精辟,……
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马