通俗理解JAVA接口
来源:互联网 发布:模板安全计算软件 编辑:程序博客网 时间:2024/06/13 01:23
JAVA接口
接口(关键词: interface) ,在软件开发过程中起到规范标准的作用,所有使用接口的类必须实现其所使用接口内定义的所有方法。接口内定义的方法只能是抽象方法,抽象方法没有主体,不能再接口中实现,只能被声明。
说得很抽象?没关系,我们来看一下通俗点的解释。
- 有如下情景,在一次会议上教育部门发布了一个任务,要求各高校尽快落实考风考纪的整改
现在把领导交代的任务看作是一个接口
public interface Task{ //领导留下的任务 public abstract void wrok(); //整改工作}
接口是Task 是领导留下的任务 , 里面要求做的一样工作是wok();
领导不会自己去完成该任务,只会告诉你,你的目标是什么,怎么实现需要看个人喜好。
领导的任务可以被不同的相关对象接受,譬如老师 学校 学生,实际上犯罪分子也可以接受这个任务,但不具有实际意义。
class Teacher implements Task{ //--老师接受任务 public void wrok(){ //--接受任务后必须实现的方法 /*老师方法的实现,譬如开班会*/ } }class Student implements Task{ //--学生接受了任务 public void wrok(){ /*学生方法的实现 ,还是暗地里作弊*/ }}
简单地说
接口可以看成是一个任务,该任务有它自己的一个标准,所有接受该任务的对象必须完成该任务所要求的所有方法,怎么实现由任务的接受者来决定。
接口的特点:
1. 接口是一系列方法的声明。 ps:一系列方法(要求实现)的集合可以看作是一个任务。2.接口的方法只有声明,全是抽象方法,没有具体实现ps:任务只说明目的,具体怎么实现只能是使用接口的类来决定3.接口可以在不同地方被不同类实现,实现有不同行为ps: 每个对象完成任务的方法都不同4.接口不能被继承,只能被实现,接口没有构造器。 ps: 接口不能被实例化,所以没有构造器。 6.一个类只能继承一个类,但可以实现多个接口ps:爸爸只能有一个,但是可以有无数个任务5.接口可以继承其它接口,类似于类的继承
实际应用:
接口 interface Runable 与抽象类 class Thread与之间的关系,与Runable的使用,如何用实现Runable接口来创建新线程。
//接口Runableinterface Runable{ public abstract void run(); }/*线程类Thread实现Runable接口,*必须有run方法,*run里面的是该线程要做的事*而创建线程是Thread要干的事,与Runable无关*/public class Thread implements Runable{//.........省略 public Thread(Runnable target) { //构造方法 init(null, target, "Thread-" + nextThreadNum(), 0); }//.......省略 public void run() { if (target != null) { target.run(); }}
Runable 的使用方法是,让一个类实现Runable接口,然后用这个对象作为参数传递给Thread ,由Thread来创建线程并调用传入的对象target的run方法 。 其实Runable给你的任务就是让你告诉Thread,你要新建一个线程来执行什么命令。命令你写在run里面,其余事情就交给Thread吧。
声明:
本文只能作为参考,不同人有不同的理解,其中文字是JAVA接口概念和个人思维的翻译产物,与现实肯定会存在差距。不求能让大家完全弄懂,只求能稍微帮助到大家理解。
本文有任何不足和错误欢迎指正。
0 0
- 通俗理解JAVA接口
- 关于java接口的通俗理解
- (白话通俗讲解)Java实现接口的类的对象赋值给接口的理解
- 很通俗的C#接口 作用理解。
- 很通俗的C#接口 作用理解。
- C#通俗理解接口(interface)
- java迭代器的通俗理解
- Java回调通俗理解
- Java概念的通俗理解
- Java回调函数的通俗理解
- java类和对象通俗理解
- java回调机制的通俗理解
- Effective Java通俗理解(下)
- 通俗理解JAVA的多态机制
- 【JAVA基础】如何通俗的理解多线程
- java中关于new 的理解(通俗的理解)
- 理解java接口
- 理解java接口·
- Best Meeting Point
- eclipse&Myeclipse&Intellij Idea源码阅读快捷键
- adb命令如何获取android手机屏幕分辨率
- 模版设计模式
- jsp显示list长度
- 通俗理解JAVA接口
- Android WebView 自定义Context Menu
- CSU 1204 Rectangles
- [leetcode] 49. Group Anagrams
- js提交form表单
- iOS开发UI篇—UITabBarController简单介绍
- java 通过存储过程名字 获取存储过程的参数列表,然后自动传参调用sp
- Java集合中HashSet的实现原理
- 经典算法--快速排序