1. Java虚函数

虚函数的存在是为了多态。

C++中普通成员函数加上virtual关键字就成为虚函数

Java中其实没有虚函数的概念,它的普通函数就相当于C++的虚函数,动态绑定是Java的默认行为。如果Java中不希望某个函数具有虚函数特性,可以加上final关键字变成非虚函数

PS: 其实C++和Java在虚函数的观点大同小异,异曲同工罢了。

2. Java抽象函数(纯虚函数)

抽象函数或者说是纯虚函数的存在是为了定义接口。

C++中纯虚函数形式为:virtual void print() = 0;

Java中纯虚函数形式为:abstract void print();

PS: 在抽象函数方面C++和Java还是换汤不换药。

3. Java抽象类

抽象类的存在是因为父类中既包括子类共性函数的具体定义,也包括需要子类各自实现的函数接口。抽象类中可以有数据成员和非抽象方法。

C++中抽象类只需要包括纯虚函数,既是一个抽象类。如果仅仅包括虚函数,不能定义为抽象类,因为类中其实没有抽象的概念。

Java抽象类是用abstract修饰声明的类。

PS: 抽象类其实是一个半虚半实的东西,可以全部为虚,这时候变成接口。

4. Java接口

接口的存在是为了形成一种规约。接口中不能有普通成员变量,也不能具有非纯虚函数。

C++中接口其实就是全虚基类。

Java中接口是用interface修饰的类。

PS: 接口就是虚到极点的抽象类。

5. 小结

C++虚函数 == Java普通函数

C++纯虚函数 == Java抽象函数

C++抽象类 == Java抽象类

C++虚基类 == Java接口

--------------------------------------------------------------转自csdn  http://blog.csdn.net/trojanpizza/article/details/6556604

转载于:https://www.cnblogs.com/woqunimeidebokedizhi/p/3353800.html

JAVA – 虚函数、抽象函数、抽象类、接口_对比C++相关推荐

  1. c++虚继承和虚函数和抽象类、接口类,聚合类

    虚继承 虚继承用于解决多继承条件下的菱形继承问题(浪费存储空间.存在二义性). 底层实现原理与编译器相关,一般通过虚基类指针和虚基类表实现,每个虚继承的子类都有一个虚基类指针(占用一个指针的存储空间, ...

  2. 9-2:C++多态之纯虚函数和抽象类以及接口继承和实现继承

    文章目录 (1)纯虚函数和抽象类的概念 (2)抽象类的意义 (3)接口继承与实现继承 (1)纯虚函数和抽象类的概念 如果一个类的虚函数后面写上=0,同时不写它的实现,那么这样的虚函数称之为纯虚函数,包 ...

  3. C++基本概念复习之二:多重继承、虚继承、纯虚函数(抽象类)

    一.多重继承: #include <iostream> using namespace std; class Horse { public: Horse(){cout<<&qu ...

  4. C++之纯虚函数和抽象类

    纯虚函数和抽象类 1.基本概念 2.案例 #include <iostream> using namespace std;////面向抽象类编程(面向一套预先定义好的接口编程)//解耦合 ...

  5. C++ 纯虚函数与抽象类

    1.虚函数 1.1 虚函数简介 可以毫不夸张地说虚函数是C++最重要的特性之一,我们先来看一看虚函数的概念. 在基类的定义中,定义虚函数的一般形式为: virtual 函数返回值类型 虚函数名(形参表 ...

  6. C++学习12:C++多态、虚函数、虚析构函数、纯虚函数、抽象类

    一 多态概述 C++中的多态分为静态多态和动态多态.静态多态是函数重载,在编译阶段就能确定调用哪个函数.动态多态是由继承产生的,指同一个属性或行为在基类及其各派生类中具有不同的语义,不同的对象根据所接 ...

  7. c++ 纯虚函数和抽象类那些事(一)

    1.纯虚函数与抽象类 C++中的纯虚函数(或抽象函数)是我们没有实现的虚函数!我们只需声明它!通过声明中赋值0来声明纯虚函数! 纯虚函数:没有函数体的虚函数 抽象类:包含纯虚函数的类 /*** @br ...

  8. C++纯虚函数和抽象类

    基本概念 纯虚函数和抽象类 纯虚函数是一个在基类中说明的虚函数,但是在基类中没有定义,要求任何派生类都定义自己的版本 纯虚函数为个派生类提供一个公共界面(接口的封装和设计.软件模块功能的划分) 纯虚函 ...

  9. C++纯虚函数与抽象类

    纯虚函数 1.1纯虚函数是在声明虚函数时被"初始化"为0的函数.声明纯虚函数的一般形式为: virtual 函数类型 函数名 (参数列表) =0; 如 virtual float ...

最新文章

  1. let const var 比较说明
  2. 家中电脑无法共享,联通域名解析劫持竟是罪魁
  3. Pyhon Django 表单类ModelForm注册案例(可直接操作数据库)
  4. leetcode| 94. 二叉树的中序遍历
  5. 手机访问内网IIS服务器网页的方法
  6. 大屏数据可视化效果如何提升
  7. spss聚类分析_【SPSS数据分析】SPSS聚类分析的软件操作与结果解读 ——【杏花开生物医药统计】...
  8. eXtremeComponents介绍
  9. python图片背景透明
  10. npm WARN read-shrinkwrap This version of npm is compatible with lockfileVersion@1, but package-lock.
  11. Adroid游戏开发实例讲解(四)-电子白板附源码
  12. FineReport根据查询参数显示和隐藏列
  13. DoTween延时办法
  14. Qt中 gui 模块和 widgets 模块的区别
  15. [复现]Thinkphp5系列漏洞
  16. python爬虫BeautifulSoup库抓取500彩票网竞彩足球信息并在excel表中对中奖赔率设置格式
  17. sql中like的所有用法
  18. 纽卡斯尔大学计算机硕士申请,纽卡斯尔大学计算机工程方向硕士录取
  19. cgroup限制虚拟机内存的来龙去脉
  20. Topaz Gigapixel AI 5.3.1 智能图像无损放大软件汉化版

热门文章

  1. outermost shell_outermost是什么意思_outermost的翻译_音标_读音_用法_例句_爱词霸在线词典...
  2. vue实现点击高亮效果_vue结合Echarts实现点击高亮效果的示例
  3. finalshell文件列表不显示_软网推荐:文件变动我知晓
  4. python 字符串替换_python字符串替换的2种方法
  5. oracle样例数据库,创建和准备Oracle样例数据库
  6. Sleep 方案解决主备延迟
  7. clickhouse CollapsingMergeTree表引擎
  8. hive窗口函数入门
  9. Hive 存储格式入门
  10. Hbase与zookeeper