详解java接口基础知识附思维导图
2019-05-28 07:01
1846 查看
接口:
官方的含义是---->java接口是一系列方法的声明,是一些方法特征的集合
疑问:
那为什么不用抽象类呢?把他们共有的方法集合起来放在一个抽象类里面,同样可以调用哇,但是反过来想一想如果这些方法,不是同一个类,就比如飞这个方法,飞机有飞这个方法,蚊子有飞这个方法,如果让他连同时继承拥有飞这个抽象类里面,是不符合单一职责原则的,所以我们可以提供一个飞的接口,飞机,蚊子来实现这个接口,那么飞机和蚊子就拥有飞的能力啦,这是我对接口的理解
因为最近在学习java 面向对象中的接口,就画了思维导图:
这是我对接口知识的基本总结
举一个案例希望大家能理解接口!
现在有一个需求,有一个门door类,有一个防盗门AntiTheDoor类,有一个铁门IronDoor类,因为防盗门和铁门都有门的属性,所以二者
继承门door类
他们都有一个功能,就是上锁与开锁,还有一个防盗门独有的功能,就是猫眼CatEye功能,猫眼功能是防盗门独有的方法,所以应当把
猫眼看成一个接口,防盗门可以实现它,这样我们用代码怎么来诠释呢(定义与实现)
父类door
public abstract class Door { /** * 开门 */ public abstract void open(); /** * 关门 */ public abstract void close(); }
接口:只写应该具有的功能
public interface CatEye { /** * 在使用接口的所有类中,需要实现接口中所有的方法 * 他们有这个功能,但是具体的实现放是不一样的,需要实现他的类在里面重新定义它新的生命,就比如,普通的防盗门里的猫眼就是简单的看 * 但是,还有一些猫眼的看有扫描的功能,不同的需求放在不同的类里面来具体的实现 */ void look(); }
public interface Lock { /** * 上锁 */ void upLock(); void downLock(); }
防盗门是门door的子类,继承父类开门关门的方法,同时拥有上锁,与猫眼的功能
public class AntiTheDoor extends Door implements Lock,CatEye{ @Override public void look() { System.out.println("防盗门的猫眼,伸头瞪眼"); } @Override public void upLock() { // TODO 自动生成的方法存根 System.out.println("防盗门开锁:左转三圈"); } @Override public void downLock() { // TODO 自动生成的方法存根 System.out.println("防盗门的关锁,右转三圈"); } @Override public void open() { // TODO 自动生成的方法存根 System.out.println("防盗门的开门:用头顶"); } @Override public void close() { // TODO 自动生成的方法存根 System.out.println("防盗门的关门:用脚蹬"); } }
相比于防盗门,铁门只有上锁的功能
public class IronDoor extends Door implements Lock{ @Override public void upLock() { System.out.println("铁门的开锁,右转三圈"); } @Override public void downLock() { System.out.println("铁门的上锁,左转三圈"); } @Override public void open() { System.out.println("铁门的开门用脚蹬"); } @Override public void close() { System.out.println("铁门的关门方式,用头顶"); } }
测试类:
public class test { public static void main(String[] args) { AntiTheDoor atd = new AntiTheDoor(); atd.upLock(); atd.open(); atd.close(); atd.downLock(); } }
运行结果:
防盗门开锁:左转三圈
防盗门的开门:用头顶
防盗门的关门:用脚蹬
防盗门的关锁,右转三圈
一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以有具体不同的能力.
以上所述是小编给大家介绍的java接口基础知识详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
您可能感兴趣的文章:
相关文章推荐
- (java基础知识)HashMap排序,Comparator接口详解
- Java基础知识详解-思维导图
- JAVA基础-其全面详解Java基础知识(五)
- 《java核心技术_卷一:基础知识》(一)1-3章 思维导图
- Java基础知识笔记(七:接口、变量作用域和参数传递)
- 常用AWT监听器接口,事件和事件源(摘自Java 2 核心技术<卷一:基础知识>(第七版)》)
- Java 继承与接口知识详解
- JAVA基础知识思维导图:unit01_开发环境,变量,基本类型及转换,数学运算,流程控制,数组
- Java基础(八) Java修饰符及接口详解之(一)static/final/abstract关键字及接口的使用
- java基础知识3--抽象类,接口
- java基础知识回顾之抽象类和接口的区别
- java中文乱码解决之道(二)-----字符编码详解:基础知识 + ASCII + GB**
- Java基础知识强化之网络编程笔记25:Android网络通信之 Future接口介绍(Java程序执行超时)
- java中文乱码解决之道(二)-----字符编码详解:基础知识 + ASCII + GB**
- java 基础知识二(抽象类‘、接口)
- 全面详解Java基础知识
- java中文乱码解决之道(2):字符编码详解:基础知识 + ASCII + GB**
- java基础知识--回收站和接口
- java基础知识之接口
- Java基础知识整理三(反射机制详解…