java的子类对象_java 子类对象的特点

书本上有道例题是这样的:A.javapublicclassA{privateintx;publicvoidsetX(intX){this.x=x;}publicintgetX(){returnx;}}B.javapublicclassBextendsA{doubley=12;publicvoidsetY(inty)...

书本上有道例题是这样的:

A.java

public class A {

private int x;

public void setX(int X) {

this.x=x;

}

public int getX() {

return x;

}

}

B.java

public class B extends A {

double y=12;

public void setY(int y) {

//this.y=y+x; 非法,子类没有继承x

}

public double getY() {

return y;

}

}

Example5_2.java

public class Example5_2 {

public static void main(String args[]) {

B b=new B();

b.setX(888);

System.out.println("子类对象未继承的x的值是:"+b.getX());

b.y=12.678;

System.out.println("子类对象的实例变量y的值是:"+b.getY());

}

}

输出的结果是:

子类对象未继承的x的值是:888

子类对象的实例变量y的值是:12.678

--------------------------------------------------------------------------------------

我是这样想的:这题中的b对象是没有继承x的,那么class A当中的this虽指向的是对象b,但是b却不能用this关键字来调用x,也就是说b.x是不存在的,因为x的权限是prinvate,所以我觉得局部变量x赋予this.x的值是没有任何意义的。那么getX()里的return x 返回的应该是默认值0,但答案却是888,我真的搞不清楚为什么b没有继承x,但却可以用this关键字来调用x呢,this.x就等于b.x,但b.x不存在,难道不是这样的吗,请各位高人指点一下小弟吧。小弟感激不尽啊

展开

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值