当前位置: 首页 > 编程日记 > 正文

Java 抽象类与接口的区别

接口和抽象类有什么区别

你选择使用接口和抽象类的依据是什么?

接口和抽象类的概念不一样。接口是对动作的抽象,抽象类是对根源的抽象

抽象类表示的是,这个对象是什么。接口表示的是,这个对象能做什么。比如,男人,女人,这两个两,他们的抽象类是人。说明,他们都是人。 人可以吃东西,狗也可以吃东西,你可以把 吃东西定义成一个接口,然后让这些类去实现他。

所以,在高级语言上,一个类只能继承一个类(抽象类) (正如人不可能是生物或非生物),但是可以实现多个几口(吃饭接口,走路接口)

总结几句话来说:

1, 抽象类和接口都不能直接实例化,抽象类变量必须指向抽象方法的子类对象,接口变量必须指向所有接口的类对象。

2,抽象类要被子类继承,接口要被类实现。

3,接口只能做方法申明,抽象类可以做方法的申明,也可以做方法实现

4,接口里定义的变量只能是公共静态常量,抽象类的变量是普通变量

5,抽象类里的抽象方法必须全部被子类所实现,如果子类不能全部实现抽象方法,那么该子类只能是抽象类

6,接口可以多继承

相关文章:

XMOVE3.0手持终端——软件介绍(五):在2KB内存的单片机上实现的T9中文输入法

编者注: X-MOVE是作者在业余时间于2010年6月份启动的以运动传感开发,算法和应用的平台,目前已经发展了三个版本,第四版的开发接近尾声。发布在博客园仅为交流技术,不存在商业目的,作者保留一切权利。 一. 综…

推荐系统遇上深度学习,9篇阿里推荐论文汇总!

作者 | 石晓文转载自小小挖掘机(ID: wAIsjwj)业界常用的推荐系统主要分为两个阶段,召回阶段和精排阶段,当然有时候在最后还会接一些打散或者探索的规则,这点咱们就不考虑了。前面九篇文章中,有三篇是召回阶…

ReSharper修改命名风格

默认情况下,ReSharper会建议你全局变量命名使用下划线开头,且第一个字母小写。否则,会给你标记出来,如下: 但我个人不喜欢这种风格,一般使用首字母大写且不带下划线,可以通过配置来调整&#xf…

【Qt】Log4Qt(一)下载、编译

Log4Qt(一)下载、编译 1、下载2、编译2.1 单独编译成库2.2 将源码添加到项目中2.2.1 log4qt.pri分析2.2.2 pro示例如下1、下载 github上星最多的是这个:https://github.com/MEONMedical/Log4Qt 下载log4qt最新(截止2021-12-04)的稳定版本v1.5.1(Qt版本需要Qt5.7.0以上)…

android:退出程序

http://kofi1122.blog.51cto.com/2815761/703751 使用的是定义全局变量的方法

ubuntu中使用apt命令安装ipython失败解决方案

在最近使用ubuntu安装ipython时,出现如下报错: 出现这个问题,主要是因为apt还在运行,故解决方案为: 1、找到并且杀掉所有的apt-get 和apt进程 运行下面的命令来生成所有含有 apt 的进程列表,使用ps和grep命…

【Qt】Log4Qt(二)使用

Log4Qt(二)使用 1、使用TTCCLayout 格式化输出1.1 添加头文件1.2 配置根记录器的输出格式1.3 注册记录器,并输出日志2、最简代码3、将日志写入文件4、使用配置文件:log4qt.properties5、使用配置文件:QSettings6、周期性生成日志文件7、滚动生成日志文件(可以指定日志文件…

B站超全分享!2万人收藏的免费计算机科学速成课

整理 | 一一出品 | AI科技大本营(ID:rgznai100)作为一枚程序员,很多人可能都不太能清晰地说出计算机发展脉络,要想成为优秀的程序员,只会编程是不够的。“读史使人明智”,我们还要了解计算机理论知识&#…

图说:Windows 8使用搜索,快速开启应用

在Windows 8中,“开始菜单”变成的“开始屏幕”,想快速找到需要的应用不是件容易的事,毕竟桌面可以安装太多的应用。 怎么快速找到需要的应用的,其实方法也非常简单,只需在“开始屏幕”下使用键盘,键入需要…

一个可以卷起来的蓝牙键盘,简直是办公码字神器!

作为一个办公室码字党,熊大大一直觉得ipad最大的bug就是码字不方便。以前,我每次码字都会把平板先平放,打字才能顺手╮(╯﹏╰)╭后来买了蓝牙键盘,码字方便了,但键盘又大又厚重,日常携带巨不方…

比较v-bind和v-model

简单来说,区别如下:1.v-bind用来绑定数据和属性以及表达式,缩写为:2.v-model使用在表单中,实现双向数据绑定的,在表单元素外使用不起作用 一、v-model v-model多在表单中使用,在表单元素上创建双…

【Qt】Log4Qt(四):周期性输出日志,并且限制日志文件数量

在Log4Qt中存在一个比较大的问题,当使用 DailyRollingFileAppender对日志进行输出时,会无限输出文件,也就是说,当系统运行很久时,日志文件有可能很大,大到无法想象。因此,很多开发者希望在DailyRollingFileAppender中加一个属性,用于配置日志文件的个数。 1、dailyrol…

g13 root

1.官方解锁: 官方已经给出了wildfire S的解锁bootloader教程。需要注意的是,这个解锁之后虽然仍是s-on状态(但下边一行显示了unlock),不影响我们将来随意刷机,说白了就相当于s-off了。 准备工作&#xff0c…

【Qt】Log4Qt(三)源码分析

Log4Qt(三)源码分析 1、分层架构1.1 核心对象1.2 支持对象2、源码分析2.1 宏2.1.1 LOG4QT_DECLARE_QCLASS_LOGGER2.1.2 LOG4QT_DECLARE_STATIC_LOGGER2.2类2.2.1 Log4Qt::ClassLogger2.2.2 LogManager2.2.3 PropertyConfigurator2.3 深入理解 rootLogger、logLogger、qtLogge…

GitHub五万星登顶,程序员命令行最全技巧宝典!

作者 | 唐小引封图 | CSDN出品 | CSDN(ID:CSDNnews)一个项目 Get 所有命令行技巧!最近两天,「The Art of Command Line(命令行的艺术)」这个开源项目雄踞了 GitHub TOP 榜,直接以 51…

开源硬件:极客们的伟大理想

自 Dennis Allison 在 1975 年发布它的 Tiny BASIC 以来,他倡导的开放、共享的思想得到了多数开发者的认同,这些年,软件开源取得了令人瞩目的成绩。同时,他那句 “让我们站在彼此的肩膀,而不是彼此的脚趾上。”也变成了…

五年12篇顶会论文综述!一文读懂深度学习文本分类方法

作者 | 何从庆来源 | AI算法之心(ID:AIHeartForYou)最近有很多小伙伴想了解深度学习在文本分类的发展,因此,笔者整理最近几年比较经典的深度文本分类方法,希望帮助小伙伴们了解深度学习在文本分类中的应用。…

Failed to fetch http://mirrors.cloud.aliyuncs.com/

服务器版本:阿里云 ubuntu 16.04 问题:阿里云安装软件时,提示 W: Failed to fetch http://mirrors.cloud.aliyuncs.com/ubuntu/dists/xenial/InRelea se Could not resolve mirrors.cloud.…

【FFmpeg】使用sws_scale将AVFrame转换后的图像数据放入cv::Mat中

1、方法一,伪代码如下 cv::Mat mat; AVFrame avFrame; const int stride[] = {static_cast<int>(mat.step[0])}; ret =

Android之Adapter用法总结

本文转自http://kb.cnblogs.com/a/2328334/&#xff0c;转载请注明原出处。 Android之Adapter用法总结 作者&#xff1a;Devin Zhang 来源&#xff1a;博客园 发布时间&#xff1a;2012-01-20 22:33 阅读&#xff1a;1193 次 原文链接 [收藏] 1.概念 Adapter是连接后端数…

【FFmpeg】ffmpeg命令详解(一)

ffmpeg命令详解(一) 1、命令格式2、简述3、详细说明3.1 过滤器3.1.1 简单的过滤器图3.1.2 复杂的过滤器图3.2 流拷贝1、命令格式 ffmpeg [global_options] {[input_file_options] -i input_url} ... {[output_file_options] output_url} ...global_options:全局选项 input_…

从流感预测到智能决策,深度学习能帮企业做哪些事?

未来将只有两种公司&#xff0c;一种是有人工智能的&#xff0c;一种是不赚钱的。这句话大概可以总结两层意思&#xff0c;一方面人工智能让更多的企业面对更广阔的商业前景&#xff0c;另一方面是如果要运用人工智能创造价值&#xff0c;就必须拥抱技术&#xff0c;实现真正的…

寻找隐形冠军 支付宝、微信用得那么溜,可谁知道背后有一名“上海功臣

下午三点半&#xff0c;离晚饭时间还有一段时间&#xff0c;可新沪路上的熟食店“尚老居”门口已经人头攒动。 “阿姨你来啦&#xff0c;今天要点什么&#xff1f;” “老样子&#xff0c;称点烧鹅和蹄髈&#xff0c;阿拉孙子老欢喜吃的&#xff0c;买好正好去接伊放学。” “阿…

Lnmp安装与配置笔记

——————————————安装与配置——————————————1.相关软件&#xff1a;yum -y install gcc gcc-c autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-…

【FFmpeg】ffmpeg命令详解(二)

ffmpeg命令详解(二) 4、流选择4.1 自动选择流4.2 手动选择流5、命令行选择详解5.1 命令行选项的值说明:5.2 流说明符5.3 通用选项5.4 主选项5.5 视频相关选项5.6 高级视频选项5.7 音频选项5.8 高级音频选项5.9 字幕选项5.10 高级字幕选项4、流选择 FFmpeg提供了“-map”选项…

谷歌开源张量网络库TensorNetwork,GPU处理提升100倍!

编译 | 琥珀出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;世界上许多最严峻的科学挑战&#xff0c;如开发高温超导体和理解时空的本质&#xff0c;都涉及处理量子系统的复杂性。然而&#xff0c;这些系统中量子态的数量程指数级增长&#xff0c;使得暴力计算并不可…

Python基础之逻辑运算符

1.在没有()的情况下&#xff0c;not的优先级高于and&#xff0c;and的优先级高于or&#xff0c;即优先级关系为()>not>and>or&#xff0c;同一优先级从左往右计算。 例题&#xff0c;判断下列逻辑语句的结果&#xff1a; 3 > 4 or 4 < 3 and 1 1 1 < 2 a…

《Android开发从零开始》——11.AbsoluteLayoutFrameLayout学习

本节课的主要内容有&#xff1a; 1.介绍AbsoluteLayout布局的使用 2.介绍FrameLayout布局的使用 课程下载地址&#xff1a;http://u.115.com/file/f15a9d5411 课件及地址&#xff1a;http://u.115.com/file/f1b56ce345 【转】转载于:https://blog.51cto.com/professor/1573001

【FFmpeg】ffmpeg命令详解(三)高级选项

ffmpeg命令详解(三)高级选项 1、-map2、-ignore_unknown3、-copy_unknown4、-map_channel5、-map_metadata6、-map_chapters7、-benchmark8、-benchmark_all9、-timelimit10、-dump11、-hex12、-readrate13、-re14、-vsync15、-frame_drop_threshold16、-async17、-adrift_th…

重磅!Google推出了Python最牛X的编辑器......

随着和大数据、人工智能绑定在一起&#xff0c;Python可畏是越来越厉害了!前几天&#xff0c; PYPL&#xff08;即编程语言流行指数&#xff0c;基于 Google 搜索频率而定&#xff09;出炉了 6 月编程语言排行榜&#xff0c;Python 拿下 NO.1&#xff0c;成为最流行的编程语言。…