| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> 【Java课堂】接口详解 -> 正文阅读 |
|
[Java知识库]【Java课堂】接口详解 |
🎈目录🎈 1、接口的概念? ? ? ? 接口顾名思义,就是我们身边常用的行为规范。而接口在我们身边比比皆是,就比如电脑上的USB接口。USB接口插入U盘、鼠标、键盘....所有符合USB协议的设备,它把我们能用到的设备插头都统一起来,使得我们不用买大量的转换器,方便我们使用。
2、语法规则接口的定义格式与定义类的格式基本相同,将class关键字换成interface即可定义接口
实现接口有几条规范需要我们注意
3、接口的使用?????????接口跟抽象类一样不能直接实例化,必须要有一个“实现类”来“实现”该接口,实现接口中的所有抽象方法。而类和接口的关系是使用 implements 来关联的
? ? ? ? 当类实现了接口,那么该类就必须实现接口中所有的抽象方法,否则编译器会报错
?此外,接口也可以应用具体实现类。【向上转型】
? 4、接口的特性 1.接口类型是一种引用类型,但是不能直接new接口的对象 ?2.接口中的每一个方法都是 public 的抽象方法,即接口中普通侧成员方法会被隐式指定为 public abstract,且只能是 public abstract,其他修饰符都会报错。 ?3.接口中的方法一般不能在接口中实现,基本上都在实现接口的类来实现(在接口中default 修饰的方法可以具体实现) 4.重写接口方法时,所加访问权限必须要大于重写方法的访问权限 ? ? ? ? 如下,draw() 方法默认是public修饰。Rect类要重写draw方法,就必须要加public,否则会报错 ?5.接口中可以含有变量,但是会被隐式指定为 public static final 变量
?6.接口中不能有静态代码块和构造方法 ?7.接口虽然不是类,但是接口编译完成后字节码文件的后缀格式也是.class 4、实现多个接口
接下来我一动物为例来进行讲解,首先先创建一个动物类【抽象类】,类中有成员变量和构造方法
同时创建一个 鱼?类和一个鸟类,并继承Animal类
?现在我们来思考一下,鱼和鸟都有什么行为、特性?
特性分析出来了,那我们该如何实现呢? 我们能不能在Animal类中写 eating、swimming、flying这三个方法,并让子类重写方法? 这样虽然能让Fish类和Bird类获各自的行为,但是鱼也获得了‘上天’【flying】的能下,鸟也获得了‘下海’【swimming】的能力,所以这样想法不行。 ?那假设我另创建一个游泳类,在类中实现游泳方法,并让Fish继承,大家想想这样可以吗?答案肯定也是不行的。
所以我们可以直接定义三个接口,分别为ISwimming、IFlying、IEating。分比让Fish类和Bird类实现,下面以Fish类实现接口为例 此时我们可以定义三个方法来方便我们调用swmming、flying、eating等 这些方法分别用相应的接口接收参数,并在main函数中调用? ?结果如下 ?此时如果 bird 能充当 swim 方法的参数吗?很明显不能。因为Bird类没有实现ISwimming接口。但是bird 和 fish 都能调用 eating 方法,这是因为 Fish 和 Bird 类都实现了IEating接口
?上面代码展示了Java 面向对象编程中最常见的用法:一个类继承一个父类,同时实现多个接口。 继承表达的含义时 is-a 含义,而接口表达的含义时 具有xxxx特性
5、接口间的继承
接口可以继承一个接口, 达到复用的效果. 使用 extends 关键字.
通过接口继承创建一个新的接口 IAmphibious 表示 "两栖的". 此时实现接口创建的 Frog 类, 就继续要实现 run 方法, 也需要实现 swim 方法。
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 16:47:15- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |