java可以继承父类的私有变量,为什么子类调用会出现没有定义的情况?

dufangwen060105 2009-11-01 09:06:42

class Father
{
private int b = 1;
private void method1()
{
System.out.println("Father");
}
}
class Son extends Father
{
public static void main(String args [])
{
new Son().method1();
}
}

在编译的时候出现了问题,说Son没有定义这个方法?为什么?子类应该继承了这个父类的私有方法,如果出现错误的话,也应该是子类无法调用父类的私有方法,而不是没有定义。我猜想是java的内存分配中,子类对象虽然含有父类对象,但是父类的方法区中似有方法对子类是不可见的,所有才会出现这个问题,但这只是我的猜测,还想各位帮帮我。
由于没有积分了,所以无法给帖子加分,还请见谅。
...全文
642 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
cheng_tao 2010-04-07
  • 打赏
  • 举报
回复
子类是可以继承父类私有成员变量的。只是不能直接访问。。这是实践得出的真理。不信可以自己测试一下。。。。。。。
苍蝇①号 2009-11-12
  • 打赏
  • 举报
回复
多看看书
jjxoyzy 2009-11-12
  • 打赏
  • 举报
回复
子类不可继承私有的属性!!!
zdyfzj 2009-11-11
  • 打赏
  • 举报
回复
子类无法继承父类的私有成员,这是最科学的解释
dufangwen060105 2009-11-03
  • 打赏
  • 举报
回复
我也以为子类是无法继承父类的私有变量的,但子类是继承了,只是子类依然不能访问
xiaohongboabcd 2009-11-03
  • 打赏
  • 举报
回复
子类和父类在同一个包中,子类可以访问继承父类的public protected 和默认权限的成员变量和方法,子类和父类不在同一个包类则子类只可以访问父类的public权限的成员变量和成员方法,你可以自己写一个类测试一下
木木水夕 2009-11-02
  • 打赏
  • 举报
回复
建议楼主多看点Java基础,私有的东西是不能继承的
doniks 2009-11-02
  • 打赏
  • 举报
回复
私有的变量和方法只能被自己所调用,并不能被子类所继承使用,
那是权限问题,lz多看看书
pratt 2009-11-02
  • 打赏
  • 举报
回复
- 私有的变量,方法
- 构造函数
是不可以被子类继承的.
feng_jyie 2009-11-02
  • 打赏
  • 举报
回复
谁告诉你的子类可以继承父类的私有变量?
ouyangyh 2009-11-01
  • 打赏
  • 举报
回复
这是访问权限的问题
如果继承后,就什么都可以访问
那就不存大封装的问题了
smartcatiboy 2009-11-01
  • 打赏
  • 举报
回复
子类无法访问private
可以改成protect
r4141496091 2009-11-01
  • 打赏
  • 举报
回复
private是最高级的保密,就算子类都不可以访问,只能是本类才可以访问,如果要访问父类的私有变量或者私有方法,请使用default级别以上的控制访问符的接口方法访问,如果在父类中定义一个

public int getB()
{
return this.b;
}

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧