为了账号安全,请及时绑定邮箱和手机立即绑定

父类方法可以访问子类的私有数据域吗? 如题,请问第2个Person输出是怎么来的啊?

父类方法可以访问子类的私有数据域吗? 如题,请问第2个Person输出是怎么来的啊?

超凶的233 2017-08-17 16:20:05
package demo; public class Main { public static void main(String[] args) { new Person().printPerson(); new Student().printPerson(); } } class Student extends Person{ private String getInfo() { return "Student"; } } class Person{ private String getInfo() { return "Person"; } public void printPerson(){ System.out.println(getInfo()); } }输出为:PersonPerson
查看完整描述

3 回答

已采纳
?
蜂之谷

TA贡献564条经验 获得超863个赞

输出不告诉你了吗,private只能在当前类使用,第二个就是调用父类的printPerson()啊

查看完整回答
1 反对 回复 2017-08-17
  • 超凶的233
    超凶的233
    子类继承了父类的方法,那么子类对象应该可以访问自己的私有数据域啊,所以new Student().printPerson();里调用printPerson()的时候应该可以访问自己的getInfo(),我哪里理解错了?
  • 蜂之谷
    蜂之谷
    你的子类又没有printPerson方法,new Student().printPerson();肯定就调用父类的printPerson()啊,而父类的printPerson中getInfo()调用的是父类自己的getInfo(),总不能调子类的getInfo()吧
  • 超凶的233
    超凶的233
    噢噢,意思是虽然子类Student继承了父类Person的printPerson()方法,但是父类的printPerson()方法不能调用子类的私有的getInfo(),所以这里调用的只能是父类的getInfo(),我说得对吗?
点击展开后面2
?
凌小天3635910

TA贡献17条经验 获得超13个赞

类的私有域是不能被外界直接访问的。


上面的代码中Student继承了Person类的 。

而Student只能获得Person类的公用方法printPerson。不能继承私有方法getInfo。


主函数中第一条语句新建了一个Person类并调用了它的printPerson方法。

第二条语句新建了一个Person类的子类Student类并调用了Student类继承自Person类的方法printPerson。

查看完整回答
1 反对 回复 2017-08-17
  • 3 回答
  • 0 关注
  • 1927 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信