JAVA – 虚函数、抽象函数、抽象类、接口

JAVA – 虚函数、抽象函数、抽象类、接口1. Java虚函数虚函数的存在是为了多态。C++中普通成员函数加上virtual关键字就成为虚函数Java中其实没有虚函数的概念,它的普通函数就相当于C++的虚函数,动态绑定是Java的默认行为。如果Java中不希望某个函数具有虚函数特性,可以加上final关键字变成非虚函数PS: 其实C++和Java在虚函数的观点大同小异,异曲同工罢了。 2. Java抽象函数(纯虚函…

大家好,又见面了,我是你们的朋友全栈君。

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接口
——————— 
作者:trojanpizza 
来源:CSDN 
原文:https://blog.csdn.net/trojanpizza/article/details/6556604 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/147213.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 【Github教程】史上最全github用法:github入门到精通

    【Github教程】史上最全github用法:github入门到精通

    2021年11月29日
    53
  • 数据库导入sql文件_mysql导入sql文件命令

    数据库导入sql文件_mysql导入sql文件命令Sql文件导入数据库-保姆级教程,铁打的保姆,希望对大家能有所帮助,不要忘了点赞+收藏哦

    2022年10月2日
    0
  • linux如何退出文件查看模式,linux vi保存退出指令(如何退出vi)

    linux如何退出文件查看模式,linux vi保存退出指令(如何退出vi)有很多方法退出Vi当编辑完文件准备退出Vi返回到shell时可以使用以下几种方法之一在命令模式中连按两次大写字母Z若当前编辑的文件曾被修改过则Vi保存该文件后退出返回到shell;若当前编辑的文件没被修改过则Vi直接退出返回到shell在末行模式下输入命令:wVi保存当前编辑文件但并不退出而是继续等待用户输入命令在使用w命令时可以再给编辑文件起一个新的文件名[例]:wnewfi…

    2022年9月27日
    0
  • oracle_loader类型外部表

    oracle_loader类型外部表1、创建目录(createanydirectory):   SQL>createuseroracleidentifiedbyoracle;用户已创建。SQL>grantdbatooracle;授权成功。SQL>grantcreateanydirectorytooracle;授权成功。SQL>connoracle/oracle

    2022年10月11日
    0
  • SecureCRT显示乱码的解决办法

    SecureCRT显示乱码的解决办法SecureCRT是一款支持SSH的终端仿真程序,用于连接运行包括Windows、UNIX和VMS的工具。对于学ARM的人来说,这个软件也是十分的好用!下面来看看SecureCRT的显示问题,如果没有设置好,那么就会出现乱码这种情况。比如:我发现在连接Linux系统之后,因为我装的是中文版的Linux系统,所以在显示中文的时候,SecureCRT显示出乱码。原因在于我们的Linux

    2022年7月17日
    45
  • c# combobox属性dropdownlist赋值

    c# combobox属性dropdownlist赋值combobox属性设置为dropdownlist后,text赋值如果combobox的内容里有则显示,没有则不显示。 即如果combobox1包含ABCD,赋值A则可以显示,F则不行。

    2022年10月10日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号