当前位置:  技术问答>java相关

简单问题简单问题简单问题简单问题

    来源: 互联网  发布时间:2015-02-21

    本文导语:   class Father {    int var1=10;    void amethod() {      System.out.println("father method ");    } } class Son extends Father {   int var1=20;   void amethod() {     System.out.println("father is over ridden ");   }  public void bmethod()...

 class Father {
   int var1=10;
   void amethod() {
     System.out.println("father method ");
   }
}
class Son extends Father {
  int var1=20;
  void amethod() {
    System.out.println("father is over ridden ");
  }
 public void bmethod() {
    System.out.println("son's method ");
  }

  public static void main(String as[]) {
    Father f=new Son();
    System.out.println(f.var1);
    f.bmethod();
    f.amethod();

  }
}

f.bmethod();为什么出错???

|
你说的这个问题是一个非常典型的问题,在c++/java学习中能提到这样的问题,学习应该很是深入的。同时也说明java不过是c++的边缘副产品。好了,不说废话,说正题:

(1)java中没有指针概念的。他只有相当于(注意是相当于)c++的引用概念。
(2)java中只有虚拟函数的概念。
(3)开始说明了:
Father f=new Son();
便于说明改成:Son son=new Son(); Father f=son;
实际上son和f虽然指向的地址是一样的。但是他们管辖的地址空间(就是可以理解为地址的数量)是不同的。son 比f要多的。你有了虚拟函数的概念就知道。实际上f的地址空间没有包括
public void bmethod() 的.
也就是方法虽然存在,但是f却被限制不能管理到那里的空间。所以就出现你的那种情况。

不过你可以象这样使用:
(Son)f.method();

|
f 是个father,而father中没有bmethod(),所以会出错。f前面加(Son)down cast就可以。

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 修改配置真正解决php文件上传大小限制问题(nginx+php)
  • 小问题,急问题,重大问题!!!
  • 修改配置真正解决php文件上传大小限制问题(apache+php)
  • 弱弱的一问,linux下的中文问题及网络问题,分不是问题
  • sharepoint 2010中item.Update()和item.SystemUpdate 修改数据版本问题解决
  • 请教两个小问题:一个cgywin下使用vi的问题,另一个socket的问题
  • 八个问题帮你快速了解Docker
  • 网页的编码问题!或者java的编码问题,由此引出一条解决中文问题的思路
  • 错误:将'const x'作为'x'的'this'实参时丢弃了类型限定问题解决
  • 死锁的问题 多级锁定问题 循环锁定问题
  • nginx Windows版相关问题及使用说明
  • [问题]双系统出现的问题!求问题的原因和解决办法!
  • vs2010下禁用vmware的方法以及解决vmware插件导致vs2010变慢的问题
  • 初学者问题。一个是编译hello world的问题,一个是配置ssh的问题
  • Linux下时钟同步问题:Clock skew detected原因分析及解决方法
  • C程序问题:哪个高手帮我解释下下面的问题,主要是a[0]和&[0] 的区别 和编译器的问题??
  • c/c++服务器程序内存泄露问题分析及解决
  • swing的问题还是jbuiler的问题??
  • ​部署 Docker 前必须问自己的四个问题
  • 菜鸟第一次安装红帽子7.2的一箩筐问题。每个问题会开个帖子,各放100分!请有安装经验的老鸟们帮忙解决。第二个问题:什么是LILO?怎么样
  • spring的事务类型及spring和hibernate可能导致的问题分析
  • jbuilder7问题 编译没有问题,内部运行编写的的java程序就退出了???


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3