CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2SE / 基础类

简单的超类方法访问问题??

楼主milkslzz(小肥虫.net)2005-04-02 22:39:37 在 Java / J2SE / 基础类 提问

问题在main的输出那个地方,为什么会这样  
   
  ////extends例题,还有变量名隐藏和方法隐藏  
  class   father  
  {  
  int   x;  
  father(int   x)  
  {  
  this.x=x;  
  }  
  public   int   getx()  
  {  
  return   this.x;     //这里改成x或者this.x结果都还是100????  
  }  
   
  }  
   
  class   sun   extends   father  
  {  
  int   x;  
  //super(10)  
  sun(int   x,int   y)  
  {  
  super(y);                  
  this.x=x;  
   
  }  
  public   int   getx()  
  {  
  return   x;  
  }  
   
  }public   class   example_extends   {  
  public   static   void   main(String[]   argv)  
  {  
   
  sun   s=new   sun(100,10);  
  System.out.println("father="+((father)s).x+"\tsun="+s.x);  
           
  System.out.println(((father)s).getx()+"\t"+s.getx());  
  }                                               //(((father)s).getx()这里调用的是超类的getx()呀??输出的应该是10,为什么输出是100???  
   
  }  
   
  问题点数:0、回复次数:3Top

1 楼logic_online(淡忘)回复于 2005-04-02 22:58:07 得分 0

你在子类sun中重载了getX()方法,根据多态性,无论你调用getX方法的引用是父类的还是子类的,只要引用指向的对象是子类的对象,getX方法访问到的x值都是子类中的,而不是你认为的使用父类的引用调用getX方法就会访问到父类的x值.  
  如果你在子类的定义中去掉对getX方法的定义,结果就会是你预料的那样了,因为成员变量x不能被重载,而是在子类中被隐藏了,getX方法访问到的x值是根据调用getX方法的引用决定的.Top

2 楼killme2008(为了生态平衡,请保护蛤蟆)回复于 2005-04-02 23:09:31 得分 0

java默认是后期绑定的,楼主是c++转过来的吧  
  你向上转型以后调用的还是对象的实际类型的数据成员或者方法,多态的表现Top

3 楼milkslzz(小肥虫.net)回复于 2005-04-02 23:36:24 得分 0

呵呵,高手阿,一眼就看出我就是从c++转过来的。。。。  
  我现在刚刚自学java   ,现在有不懂的问题只要请教各位大虾拉  
  thanks~~    
  Top

相关问题

  • 问一个超级简单的基础java问题,我想访问protected修饰的方法,应该怎么访问呢
  • 请问有没有简单的方法可以知道一个共享目录可以访问到?50分
  • 紧急求救:寻求一种最简单的方法可以使编好的Delphi程序可以通过网络访问(问题解决了,再加分)
  • 有什么简单的方法可以判断程序是否可以成功访问internet上的某个网页。
  • 关于访问PowerObject的方法问题
  • 征求数据库访问方法?
  • Win2000下端口访问方法
  • 访问NT Service有几种方法啊???
  • 用vb 访问access几种方法
  • protected成员的访问方法

关键词

  • c++
  • sun
  • getx
  • 子类
  • 调用
  • 方法
  • father
  • 引用
  • 输出
  • 父类

得分解答快速导航

  • 帖主:milkslzz

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo