java: 抽象类与接口和c++中接口和虚函数的区别,java可以多继承吗?

转自https://blog.csdn.net/weixin_36571185/article/details/89523514

一、对比图表

JAVA C++
普通函数 虚函数,用Virtual标识
抽象函数abstract 纯虚函数,用Virtual标识 ,且函数=0
抽象类 抽象类,和java概念一样
interface接口 纯虚类,所有的函数都是纯虚函数。纯虚函数和虚函数的区别在于前者不包含定义,而后者包含函数体。

二、C++虚函数与JAVA中抽象函数比较

1:java中没虚函数概念。

2:C++中有虚函数概念,用virtual 关键字表示,每个类都会有一个虚函数表,该虚函数表首先会从父类中继承得到父类的虚函数表, 如果子类中重写了父类的虚函数(不管重写后的函数是否为虚函数),要调用哪个虚函数,是根据当前实际的对象来判断的(不管指针所属类型是否为当前类,有可 能是父类型),指针当前指向的是哪种类型的对象,就调用哪个类型中类定义的虚函数。每个类只有一张虚拟函数表,所有的对象共用这张表。即也就是说,java类中的普通函数就是C++中的虚函数。

ps:C++

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值