c++类与类之间的继承关系,java中什么是类的继承

  c++类与类之间的继承关系,java中什么是类的继承

  #包括iostream

  使用命名空间std

  类别基础

  {

  公共:

  int I;

  基底()

  {

  i=9999

  fun();

  }

  虚拟虚空乐趣()

  {

  cout base . fun() endl;

  }

  };

  类别衍生:公用基底

  {

  公共:

  int I;

  Derived() {

  I=-1;

  }

  虚拟虚空乐趣()

  {

  cout derived . fun() endl;

  }

  };

  int main(int argc,char *argv[])

  {

  base * b=new Derived();

  cout(b-I)endl;

  b-fun();

  }

  Java代码:

  类别基础

  {

  int i=9999

  公共void fun()

  {

  system . out . println( base . fun());

  }

  基底()

  {

  fun();

  }

  }

  类别衍生扩充基底

  {

  int I=-1;

  派生的(){}

  公共void fun()

  {

  system . out . println( derived . fun());

  }

  }

  公共类开发

  {

  公共静态void main(String argv[])

  {

  base b=new Derived();

  system . out . println(b . I);

  b . fun();

  }

  }

  差异体现在输出的第一行;

  这一行是在派生的构造函数中输出的。派生本身没有构造函数。它只调用父类的构造函数,即Base的Base(),执行fun()函数。

  对于C代码,执行Base:fun();

  对于Java代码,它是Derived:fun();

  为什么,在C中调用基类的fun的时候,这个时候子类还没有准备好,所以执行基类的fun。

  分析:区别在于编译器及其工作原理。

  C代码编译后,基构造函数中的代码是静态的,其中调用的其他函数的地址在编译时就已经确定了,所以执行Base:fun()。(除了虚函数是动态绑定的,其他都是静态代码)

  Java代码是动态绑定的,每个函数在编译时就已经形成了虚拟机指令代码,但是具体的函数调用是动态的。因为派生类调用父类的构造函数,所以这里的fun()函数被认为是派生的。

  转载请联系作者授权,否则将追究法律责任。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • office2010激活密钥大全 怎么永久激活office2010
  • project2010产品密钥免费_project2010激活密钥永久激活码
  • c语言调用退出函数 c语言退出整个程序怎么写
  • c语言中怎么给函数初始化 c语言的初始化语句
  • c语言编写函数计算平均值 c语言求平均函数
  • chatgpt是什么?为什么这么火?
  • ChatGPT为什么注册不了?OpenAI ChatGPT的账号哪里可以注册?
  • OpenAI ChatGPT怎么注册账号?ChatGPT账号注册教程
  • chatgpt什么意思,什么是ChatGPT ?
  • CAD中怎么复制图形标注尺寸不变,CAD中怎么复制图形线性不变
  • cad中怎么创建并使用脚本文件,cad怎么运行脚本
  • cad中快速计算器的功能,cad怎么快速计算
  • cad中快速修改单位的方法有哪些,cad中快速修改单位的方法是
  • cad中心点画椭圆怎么做,cad轴测图怎么画椭圆
  • CAD中常用的快捷键,cad各种快捷键的用法
  • 留言与评论(共有 条评论)
       
    验证码: