浅谈java的接口和C++虚类的相同和不同之处
作者:jingxian 发布时间:2023-08-05 12:01:51
标签:java,虚拟类,接口
C++虚类相当于java中的抽象类,与接口的不同之处是:
1.一个子类只能继承一个抽象类(虚类),但能实现多个接口
2.一个抽象类可以有构造方法,接口没有构造方法
3.一个抽象类中的方法不一定是抽象方法,即其中的方法可以有实现(有方法体),接口中的方法都是抽象方法,不能有方法体,只有声明
4.一个抽象类可以是public、private、protected、default,接口只有public
5.一个抽象类中的方法可以是public、private、protected、default,接口中的方法只能是public和default
相同之处是:都不能实例化。
补充说明:接口是一类特殊的抽象类,是更抽象的抽象类,你可能这样理解。抽象类是一个不完整的类,接口只是定义了一些功能。打个比方,用抽象类和接口分别描述“狗”,抽象类就是在一般类之前加abstrict说:“猪能用四肢跑,猪和能这样或者那样...”,接口的话就只能说:“猪会跑,用什么跑就是子类来讲了”


猜你喜欢
- 问题描述本来开发工具安装的是IDEA2018,有天用着用着突然崩溃了,重启后死活用不了。心血来潮下载了2019版本,顺利安装完,但是点击快捷
- 本文实例讲述了Android实现向Launcher添加快捷方式的方法。分享给大家供大家参考。具体如下:当我们在应用程序Launcher的桌面
- PhotoView的简介:这是一个图片查看库,实现图片浏览功能,支持pinch(捏合)手势或者点击放大缩小。支持在ViewPager中翻页浏
- 概述透视表是依据已有数据源来创建的交互式表格,我们可在excel中创建透视表,也可编辑已有透视表。所需工具:Free Spire.XLS f
- 前言倒计时功能在游戏中一直很重要, 不管是活动开放时间,还是技能冷却。 本文实现了一个通用倒计时组件,实现了倒计时的基本功能,支持倒计时结束
- 本文介绍了Spring Boot + MyBatis读写分离,有需要了解Spring+MyBatis读写分离的朋友可参考。希望此文章对各位有
- 本文实例讲述了Java实现矩阵加减乘除及转制等运算功能。分享给大家供大家参考,具体如下:Java初学,编写矩阵预算程序,当做工具,以便以后写
- Android四种数据存储的应用方式作为一个完整的应用程序,数据存储操作是必不可少的。因此,Android系统一共提供了四种数据存储方式。分
- 老生常谈的配置 但是还是需要说明一下EurekaApplication @EnableEurekaServer指定为server端
- 前言在Android屏幕的空间中,大部分的区域我们都是可以随意绘制,只有一部分区域是显示的固定内容:状态栏标题栏(ActionBar)页面内
- 基础环境SpringBoot、Maven代码实现1.添加依赖<!--二维码生成 --><dependency&
- TabBar在实际开发中导航栏是必不可少的控件,QtQuick Controls控件中可以使用TabBar来做导航栏,原始的导航栏是横向的,
- 存储的可选项Android 的文件系统类似于其他平台的基于磁盘的文件系统。包括以下几种存储类别:App 私有的存储空间共享的存储空间Pref
- 自己整理了 spring boot 结合 Redis 的工具类引入依赖<dependency> <groupI
- 需求是要做几个小游戏的抽奖功能,需要根据不同的游戏有不同的抽奖规则,其中也有很多共性,可归纳为只按奖品占比抽取、奖品占比与奖品数量抽取、分段
- 这篇文章主要介绍了Springboot如何设置静态资源缓存一年,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,
- 在java开发中,类、接口、方法,都需要进行注释,注释内容如图:注释中的基本元素有:描述、作者、创建日期。可增加元素有:修改日期、修改内容、
- 本文实例为大家分享了Android sharedPreferences实现记住密码功能,供大家参考,具体内容如下编写界面交互代码:packa
- 目录MVC结构简介SpringMVC简介SpringMVC执行流程常用注解1. @Controller2. @ResponseBody3.
- 介绍本篇给大家带了的是ViewFlipper,它是Android自带的一个多页面管理控件,且可以自动播放! 和ViewPager不同,Vie