详解java接口基础知识附思维导图

所属分类: 软件编程 / java 阅读数: 31
收藏 0 赞 0 分享

接口:

官方的含义是---->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 Set简介_动力节点Java学院整理

Set最大的特性就是不允许在其中存放的元素是重复的。接下来通过本文给大家分享java set常用方法和原理分析,需要的的朋友参考下吧
收藏 0 赞 0 分享

Java Timezone类常见问题_动力节点Java学院整理

这篇文章主要介绍了Java Timezone类常见问题的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

javaWeb项目部署到阿里云服务器步骤详解

本篇文章主要介绍了javaWeb项目部署到阿里云服务器步骤详解,非常具有实用价值,需要的朋友可以参考下
收藏 0 赞 0 分享

详解使用zxing库生成QR-Code二维码

这篇文章主要介绍了详解使用zxing库生成QR-Code二维码的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

java实现对服务器的自动巡检邮件通知

这篇文章主要为大家详细介绍了java实现对服务器的自动巡检邮件通知,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

java随机验证码生成实现实例代码

这篇文章主要介绍了java随机验证码生成实现实例代码的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

java读取txt文件代码片段

这篇文章主要为大家详细介绍了java读取txt文件的代码片段,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

java连接mysql数据库的方法

这篇文章主要为大家详细介绍了java连接mysql数据库的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

java 算法之快速排序实现代码

这篇文章主要介绍了java 算法之快速排序实现代码的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

详解Spring缓存注解@Cacheable,@CachePut , @CacheEvict使用

这篇文章主要介绍了详解Spring缓存注解@Cacheable,@CachePut , @CacheEvict使用,非常具有实用价值,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多