接口与实现

DAY ONE

目录

DAY ONE
第一节:接口
第二节:接口实现
DAY TWO
第三节:接口回调
第四节:接口与多态
第五节:接口参数
DAY THREE
第六节:面向接口编程


前言

自学Java总结的一些接口知识点。


第一节、接口

1.1什么是接口?
接口是Java语言中一种重要的数据类型,接口解决了Java无法实现多继承的弊端

1.2为什么要使用接口?
1、接口可以抽象出重要的行为标准,这个行为标准用抽象方法来表示
2、可以把实现接口的类的对象的引用赋值给接口变量,该接口变量可以调用类中重写的接口方法,即体现这个类根据接口里的行为标准给出的具体行为

1.3定义接口
在Java中使用关键字interface来定义一个接口。接口与类的定义相似,分别为接口声明与接口体
如:

interface Animal{public void cry();public String getAnimalName();
}

①接口声明格式:
interface 接口的名字
如以上代码中的

interface Animal

②接口体
接口体中包含常量声明与抽象方法两个部分。接口体中不能有变量与普通方法,且接口中所有的常量访问权限一定是public,而且是static常量(声明时可以省略public、final与static修饰符),所有的抽象方法访问权限也都是public(可以省略public abstract)
如:

interface Mash{public static final int number = 888;//可以写成:int number=888;public abstract void add();//可以写成:void add();public abstract float sum(float x,float y);
}

第二节、实现接口

1.1类实现接口
一个类需要在类声明后使用关键字implements声明该类实现一个或者多个接口。实现多个接口用逗号分隔开接口名,例如:A类实现B,C两个接口

class A implements B,C

1.2重写接口中的方法
如果一个非抽象类实现了某个接口,那么这个类必须重写这个接口中的所有方法。有一点要注意,接口中的方法一定是public abstract方法,在重写时要去掉修饰符abstract、且访问权限一定要用public来修饰(不然就降低了访问权限,这是不允许的),并且给出方法体。

例子一:

Animal.java
interface Animal{//定义接口void cry();public String getAnimalName();
}Dog.java
public class Dog implements Animal{//Dog类实现Animal接口@Overridepublic void cry() {//重写方法加上publicSystem.out.println("旺旺旺,我是小狗!");System.out.println("---------------------");}@Overridepublic String getAnimalName() {return "小狗";}
}Cat.java
public class Cat implements Animal{@Overridepublic void cry() {System.out.println("喵喵喵,我是小猫!");}@Overridepublic String getAnimalName() {return "小猫";}
}Example.java
public class Example {public static void main(String[] args) {Dog dog=new Dog();System.out.println(dog.getAnimalName());dog.cry();Cat cat=new Cat();System.out.println(cat.getAnimalName());cat.cry();}
}

运行结果:

总结

以上就是今天要讲的内容,本文仅仅简单介绍了接口的声明与实现

接口与实现基础 DAY ONE相关推荐

  1. 快速入门脑机接口:BCI基础(二)

    关于脑机接口的分类可以查看<快速入门脑机接口:BCI基础(一)> 组成成分 脑活动 神经系统由两个主要部分组成:中枢神经系统和周围神经系统.大脑是中枢神经系统的主要器官,它包含约1000亿 ...

  2. 【STM32H7】第3章 ThreadX FileX移植SDIO接口SD的基础知识

    论坛原始地址(持续更新):http://www.armbbs.cn/forum.php?mod=viewthread&tid=100749 第3章   ThreadX FileX移植SDIO接 ...

  3. A股交易接口类的基础知识

    A股交易接口类的基础知识-ES6+类 constructor构造函数 类通过class关键字来定义一个类. 类可以有自己的构造函数constructor,当我们通过new关键字创建一个实例时,构造函数 ...

  4. SPI接口的FPGA实现(一)——SPI接口的相关基础知识

    SPI系列文章主要介绍SPI接口的一些基础知识,并用DAC芯片81416的配置为例来具体说明SPI接口的具体FPGA实现. 一.SPI的基础 SPI的全称是Serial Peripheral Inte ...

  5. mysql 存储引擎接口_MySQL 的基础一(连接池, SQL接口, 查询解析器, 查询优化器, 存储引擎接口, 执行器,)...

    MySQL数据库的连接池 现在我们已经知道,我们任何一个系统都会有一个数据库连接池去访问数据库,也就是说这个系统会有多个数据库连接,供多线程并发的使用.同时我们可能会有多个系统同时去访问一个数据库,这 ...

  6. 为什么派生的子类报错不能实例化抽象类_一文搞懂抽象类和接口,从基础到面试题,揭秘其本质区别...

    目录 #抽象类介绍 #为什么要用抽象类 #一个抽象类小故事 #一个抽象类小游戏 #接口介绍 #接口与类相似点: #接口与类的区别: #接口特性 #抽象类和接口的区别 #接口的使用: #接口最佳实践:设 ...

  7. java 指令接口架构,JavaSE 基础大纲

    Java基础(JavaSE) 1.Java 基础语法: 1.1 注释 行内注释 // 多行注释 /**/ 文档注释 /** */ - javadoc 生成帮助文档 1.2 标识符 关键字 1.3 数据 ...

  8. 实体类 接口_Java 语言基础编程题 (二维数组, 五子棋游戏, 实体类和接口)

    原文:Java 语言基础编程题 (二维数组, 五子棋游戏, 实体类和接口, 视频讲解) 这里分享三道编程题, 下面是我个人的视频讲解 二维数组, 五子棋游戏, 实体类和接口_哔哩哔哩 (゜-゜)つロ ...

  9. 微机原理与接口技术的基础知识

    微机原理与接口技术 微控制单元 (Microcontroller Unit:MCU) ,又称单片微型计算机 (Single Chip Microcomputer )或者单片机,是把中央处理器 (Cen ...

  10. L9ARM体系结构与接口技术--计算机硬件基础(day1)

    目录 一.计算机基础知识 1.操作系统的作用 2.应用开发(应用软件) 3. 底层开发(硬件) 一.Linux层次结构 ​编辑 Linux子系统 二.ARM体系结构与接口技术课程导学 三.计算机基础知 ...

最新文章

  1. C++ 向量(vector) 的使用
  2. 其他算法-浅谈小波变换
  3. 死磕Java并发:J.U.C之阻塞队列:PriorityBlockingQueue
  4. My interested stuff(2008-07-10)
  5. Caffe官方教程翻译(3):Siamese Network Training with Caffe
  6. [转]【Android】9-patch图片以及例子说明
  7. Html、CSS、JavaScript 实时效果在线编辑器 - 学习的好工具,算不算?!
  8. json 字符串反序列化成DataSet
  9. Extjs可视化设计视频教程二
  10. CSS:CSS定位和浮动
  11. Java代码实现—寻找素数
  12. Smart3D软件基本操作步骤
  13. 联想教育应用使用说明(7.6版本)——第4章 网络控制工具的使用
  14. LINUX 远程复制
  15. 【Android安全】JEB技巧汇总
  16. QThread的用法
  17. C# MVC获取微信openId
  18. 张一鸣宣布卸任字节跳动CEO!
  19. 站内搜索引擎源代码 asp.net
  20. STM32F7 DSP库 FFT过程记录

热门文章

  1. canvas动画及案例
  2. oracle显示人民币,请问如何讲数字转变为大写人民币格式
  3. python编程遵循哪些规律_编程语言软件开发10个小技巧,Java、python、前端等都遵循此规律,108G资料放送中!...
  4. matlab中正态分布相关函数hist normfit normplot
  5. redis常用命令手册大全 - 笔记
  6. inline内联函数 static静态函数 普通函数区别
  7. 跨平台Brave浏览器(一百零三)
  8. 网站的架构CS和中间件
  9. Java 并发之Concurrent 包综述
  10. Shader(着色)