JAVA学习笔记037——接口和实现类的概念

2023-05-16

Java中的接口(interface)使抽象类的概念更深入一层。
接口(interface)是抽象方法和常量值的定义的集合。
从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现。

已经有类了,接口有什么意义?
有时必须从几个类中派生出一个子类,继承它们所有的属性和方法。但是,Java不支持多重继承。有了接口,就可以得到多重继承的效果。

接口中声明了方法,但不定义方法体,因此接口只是定义了一组对外的公共接口。接口只规定了一个类的基本形式,不涉及任何实现细节。实现一个接口的类,将具有接口规定的行为(方法)。

接口只定义了方法,没定义方法体,那接口的方法在哪里实现呢?

答案是:实现类

举个例子,现实世界中有很多实体具有飞行功能,我们可以构造一个公共接口Flyer来描述飞行行为。该接口规定了三个方法:起飞(take off)、着陆(land)和飞行(fly)。这样,我们用Java语言来描述:

public interface Flyer{
      public void takeoff();
      public void land();
      public void fly();
}

飞机(Airplane)就是我们很熟悉一种具有飞行能力的工具,鸟类(Bird)也是具有飞行能力。所以我们可以定义这两个抽象类。
飞机类:

public Airplane implements Flyer{
      public void takeoff(){
	System.out.println("飞机起飞“);
      }
      public void land(){
	System.out.println("飞机着落“);
      }
      public void fly();{
	System.out.println("飞机在飞“);
      }
}

鸟类:

public Bird implements Flyer{
      public void takeoff(){
	System.out.println("鸟起飞“);
      }
      public void land(){
	System.out.println("鸟着落“);
      }
      public void fly();{
	System.out.println("鸟在飞“);
      }
}

回到我们之前学习的项目。

建议面向接口开发:
先写接口-再写实现类
相当于:先制定策略,再实施。
–service、dao加入接口

接口与实现类的命名规范
接口:interface, 起名: IXxxService,例如:IStudentService,IStudentDao
实现类:implements 起名:XxxServiceImpl 例如:StudentServiceImpl,StudentDaoImpl
接口:I实体类层所在包名
实现类:实现类层所在包名Impl

以后使用接口/实现类时,推荐写法:
接口 x=new 实现类();
例如: IStudentDao studentDao=new StudentDaoImpl();

参考阅读:
java中接口(interface)详解

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JAVA学习笔记037——接口和实现类的概念 的相关文章

  • linux 执行命令提示无权限排查思路

    问题描述 在root用户下su到普通用户出现权限问题 root 64 hehe su zh su warning cannot change directory to home zh Permission denied su failed
  • C#应用程序界面开发进阶——高级窗体控件(2)——列表视图控件(最后一个代码不行)

    列表视图 xff08 ListView xff09 控件是Windows列表视图控件 xff0c 用于显示带图标的项的列表 创建列表视图控件 为列表视图控件添加项有以下两种方法 xff08 1 xff09 直接单击控件上方的小箭头 xff0
  • ubuntu16.04LTS更换阿里源

    sudo gedit etc apt sources list 替换 xff1a 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 deb cdrom Ubuntu 16 04 LTS Xenial
  • Nginx 配置问题 server directive is not allowed here in /etc/nginx/nginx.conf:69

    前沿 今天在其他服务器上重新配置 nginx conf 文件 xff0c 配置结束启动 nginx 发现遇到了这样一个错误 xff0c 我擦 我配置文件都是从上个服务器上 复制粘贴过来的 xff0c 怎么会遇到这个问题呢 xff1f 百思不
  • labelImg ZeroDivisionError: float division by zero 问题定位和解决方案

    一 前沿 labelImg的使用和安装这里不过多讲解 xff0c 网上一堆教程 二 问题以及解决方案 2 1 问题如下 xff1a Traceback span class token punctuation span most recen
  • Linux系统下查看版本信息

    一 前沿 有时候回去查看Linux的版本信息和内核 xff0c 每次可能都需要百度一下 xff0c 今天记录一下 xff0c 方便以后自己看 二 查看Linux内核版本命令 2 1 第一种方式 显示正在运行的内核版本 1 cat proc
  • Centos7下安装 prometheus+grafana

    一 前言 1 什么是 Prometheus xff1f Prometheus是最初在SoundCloud上构建的开源系统监视和警报工具包 自2012年成立以来 xff0c 许多公司和组织都采用了Prometheus xff0c 该项目拥有非
  • Linux ssh:handshake failed:EOF

    一 前沿 1 Notes xff1a 以下操作均在 京东云服务器 2 在配置好免密登陆之后 xff0c 通过ssh登陆的时候间接性的遇见 ssh handshake failed EOF 真是让人恼火 xff0c 所以给总结一下 二 解决步
  • prometheus 文件配置小技巧优化

    一 前言 很久没看过监控 xff0c 直到公司机器越来越多 xff0c 项目越来越多 xff0c prometheus yml 文件一直在增加显得很杂乱无章 xff0c 这里优化了根据项目文件来改配置文件 二 优化 1 prometheus
  • prometheus通过process-exporter监控进程并实现企业报警

    一 前沿 通过上级篇文章我们已经对 Prometheus监控服务器基础资源做了记录 xff0c 这节课主要记录一下监控服务器上的进程 二 实现步骤 Prometheus机器IPprocess exporter机器IP192 168 1 31
  • python - RSA加密

    什么是RSA xff1f 这里粘贴一些定义 RSA公开密钥密码体制 所谓的公开密钥密码体制就是使用不同的加密密钥与解密密钥 xff0c 是一种 由已知加密密钥推导出解密密钥在计算上是不可行的 密码体制 在公开密钥密码体制中 xff0c 加密
  • scrapy-设置请求头

    当我们大量使用scrapy 请求一个网站的时候我们知道scrapy默认的请求头是 xff1a 可以看到默认的请求头就是scrapy xff0c 这样就很容易导致浏览器封掉的可能 xff0c 这个时候我们就需要给请求加一个请求头来模拟浏览器
  • Android Studio gradle配置

    settings gradle 配置指定路径 module 博主博客 https blog uso6 comhttps blog csdn net dxk539687357 一 正常情况 xff0c 导入本项目的模块只需要使用 includ
  • Windows10 安装 pytesseract 出错 Error opening data file Tesseract-OCR\tessdata/eng.traineddata

    首先表明自己出现的错误 xff1a D BuildFolder tesseract ocr testing gt tesseract dlld exe eurotext tif eurotext span class hljs keywor
  • python--爬取微信公众号

    缘由 相信大家有时候面试的时候会遇到爬取微信公众号的事情 xff0c 终于闲了会参考大佬文章自己也搞了一个微信公众号的爬取简单分享一下 xff0c 莫嫌弃代码low 借鉴知识 博客参考 xff1a https blog csdn net x
  • 物联网操作系统的三大核心流派

    物联网操作系统的三大核心流派 目前 xff0c 市面上的物联网操作系统 基本形成了三大核心流派 1 由传统的嵌入式RTOS发展而来 xff0c 典型代表 xff1a FreeRTOS RT Thread LiteOS uCOS MICO 优
  • “> /dev/null 2>&1“ 含义

    在使用python时 xff0c 有时我们可能会看到这样的代码段 pip install gym pyvirtualdisplay span class token operator gt span span class token ope
  • 认识MEC

    文章目录 一 什么是MEC 二 什么是移动通信系统 三 为什么要有MEC 一 什么是MEC 所谓MEC 从字面上直观理解就能知道 这是一种运用在移动通信系统 Mobile 边缘节点 Edge 并承担大量计算任务 Computer 的玩意儿
  • ROS学习-2 工作空间文件结构和创建功能包

    古月居ROS入门21讲第九个视频 src放功能包的源码和laungh文件 build是编译过程中产生的中间文件 xff0c 二进制文件 install是安装空间 xff0c 放最终编译生成的可执行文件的 xff0c 可以给客户使用的文件 d
  • HC32L系列MCU在KEIL新建工程后在JLINK 下 SW Device下找不到设备的解决方法

    HC32L系列MCU在KEIL新建工程后在JLINK 下 SW Device下找不到设备的解决方法 问题 xff1a 新建工程HC32L的工程 xff0c 通过JLINK连接目标板 xff0c 点击KEIL环境的魔术棒 xff0c 选取JL

随机推荐

  • 漫谈Anchor-based和Anchor-Free

    曾几何时 xff0c Anchor based独霸目标检测这块CV疆域内的肥沃之地 如今 xff0c Anchor Free以其灵活的走位在目标检测中有了一席之地 xff0c 正以星星之火可以燎原之势扩大着自己的声势 Anchor base
  • 【新书推荐】【2020】基于MATLAB和Pixhawk的多轴飞行器设计与控制实践

    本书是斯普林格于2017年出版的 Introduction to Multicopter Design and Control 的姊妹版本 xff0c 旨在通过一个实际的过程帮助读者加深对多轴飞行器设计与控制的理解 As the siste
  • 【新书推荐】【2020】无人机系统设计

    从系统角度全面介绍无人飞机系统的设计和分析 Provides a comprehensive introduction to the design and analysis of unmanned aircraft systems with
  • HDFS使用Kerberos

    转载自 xff1a http www datastart cn tech 2016 06 07 kerberos 1 html 本文尝试记录HDFS各服务配置使用kerberos的过程 xff0c 配置的东西比较多 xff0c 一定会有疏漏
  • 【无人机】【2011.03】无人飞行器的自主飞行研究

    本文为澳大利亚悉尼大学 xff08 作者 xff1a Nicholas R J Lawrance xff09 的博士论文 xff0c 共233页 无人机 xff08 UAV xff09 在一系列工业 科学和国防应用中提供了独特的能力 小型无
  • 【无人机】【2019】无人机巡线路由算法研究

    本文为美国密苏里理工大学 xff08 作者 xff1a YU LI xff09 的硕士论文 xff0c 共79页 随着机器人技术的迅速发展 xff0c 越来越多的公用事业公司使用机器人来执行各种任务 无人机是一种高效的高压输电线路巡检机器人
  • 【电力电子】【2010.09】无人机系统的自适应控制

    四旋翼直升无人机 本文为美国麻省理工学院 xff08 作者 xff1a Zachary Thompson Dydek xff09 的博士学位论文 xff0c 共139页 自适应控制被认为是未来高性能 关键安全系统 xff08 如高超声速飞行
  • 【新书推荐】【2018.11】无人机多传感器导航的非线性卡尔曼滤波

    2018 11 无人机多传感器导航的非线性卡尔曼滤波Nonlinear Kalman Filter for Multi Sensor Navigation of Unmanned Aerial Vehicles xff0c 共254页 如果
  • 【源码】轻松实现四轴飞行器的模拟与控制

    本模型取自题为 Quadcopter Simulation and Control Made Easy 的网络研讨会 xff0c 您可以在这里找到相关视频内容 xff1a https www mathworks com videos qua
  • 【无人机】【2014.08】无人机循环路由

    本文为以色列理工学院 xff08 作者 xff1a Nir Drucker xff09 的硕士论文 xff0c 共65页 许多无人驾驶飞行器 xff08 UAV xff09 针对的国防和民用相关任务涉及在各种时间限制下监测预先确定的一组地面
  • 学习【gRPC C++简单示例及代码】

    文章目录 0 启动程序1 未作修改部分1 1 demo proto 2 添加注释部分2 1 server cc2 2 client cc 3 重点修改部分3 1 CMakeLists txt原始代码3 2 CMakeLists txt精简修
  • 利用Gitee搭建私人仓库-https篇

    利用Gitee搭建私人仓库 https篇 第一步 xff1a 注册Gitee账号https gitee com 第二步 xff1a 创建私人仓库 安装git 第一步 xff1a 下载git git下载地址第二步 xff1a 按照默认安装就好
  • 嵌入式开发必看:PCB设计的这几个问题,你能明白了吗?

    PCB设计布局 xff0c 是把电路器件放在印制电路板布线区内 布局是否合理不仅影响后面的布线工作 xff0c 而且对整个电路板的性能也有重要影响 在保证电路功能和性能指标后 xff0c 要满足工艺性 检测和维修方面的要求 xff0c 元件
  • STM32实例-蜂鸣器实验

    本章我们通过另外一个实验来讲述 STM32 IO 口的输出 通过 STM32F1 芯片的一个 IO口控制板载有源 无源蜂鸣器 xff0c 实现蜂鸣器控制 蜂鸣器介绍 蜂鸣器是一种一体化结构的电子讯响器 xff0c 采用直流电压供电 xff0
  • PCM分析及音量控制

    PCM音量控制 本文转自 xff1a http blog jianchihu net pcm volume control html 一 声音的相关概念 声音是介质振动在听觉系统中产生的反应 声音总可以被分解为不同频率不同强度正弦波的叠加
  • 总结大佬经验,如何学习STM32?(入门、进阶)

    大佬经验 一 想快速入门进阶 xff0c 面向工作时 先把工作中需要的东西学会 xff0c 一项一项的来 xff0c 比如先把GPIO弄清楚 xff0c 怎么初始化 xff0c 怎么输入输出 xff0c 然后定时器 串口 ADC DAC D
  • VTK和ITK中的坐标系统

    当我们在处理医学图像和应用时 xff0c 一个问题就是坐标系统之间的不同 在图像应用中通常有三个坐标系 xff0c 分别是世界坐标系 xff0c 解剖坐标系和图像坐标系 每种坐标系目的不同 xff0c 呈现数据的方式也不一样 解剖坐标系由三
  • Keil MDK-ARM下载 安装与和谐教程

    Keil MDK ARM是编写调试ARM的不二工具 xff0c 普及度极高 一 下载 方法一 xff0c Keil官网下载 xff1a https www keil com download product 点击MDK Arm后进入软件下载
  • C语言str族函数strpbrk()函数介绍及其算法实现

    一 strpbrk 函数介绍 在C语言中 xff0c 其函数原型格式一般为 xff1a span class token keyword char span span class token operator span span class
  • JAVA学习笔记037——接口和实现类的概念

    Java中的接口 xff08 interface 使抽象类的概念更深入一层 接口 interface 是抽象方法和常量值的定义的集合 从本质上讲 xff0c 接口是一种特殊的抽象类 xff0c 这种抽象类中只包含常量和方法的定义 xff0c