对于java中接口的理解
2016-06-06 18:40
302 查看
一、抽象类:
1.一般含有抽象方法。创建抽象类对象并没实际意义,所以阻止创建该类。接口由继承他的子类实现。2.子类继承抽象类。如果父类含有抽象方法,则需要为父类的所有抽象方法提供定义,否则,则子类也是抽象类。
抽象类也可以不含任何抽象方法,该类不能创建任何实例。
二、接口:
1.形式:public interface JieKou{ public static final int a=1;//声明常量,public static final 一般为隐含 public abstract void jiekou();//public abstract 一般为隐含 } public interface OnClickListener { void onClick(View v); }2.使用其中的一些原因:
a、任何抽象性都有真正的需求产生。
b、需要该类不能被创建对象。
3.java中回调接口的例子:
查找网上通俗的例子:
某天,我打电话向你请教问题,当然是个难题,^_^,你一时想不出解决方法,我又不能拿着电话在那里傻等,于是我们约定:等你想出办法后打手机通知我,这样,我就挂掉电话办其它事情去了。过了XX分钟,我的手机响了,你兴高采烈的说问题已经搞定,应该如此这般处理。故事到此结束。这个例子说明了“异步+回调”的编程模式。其中,你后来打手机告诉我结果便是一个“回调”过程;我的手机号码必须在以前告诉你,这便是注册回调函数;我的手机号码应该有效并且手机能够接收到你的呼叫,这是回调函数必须符合接口规范。
代码例子:
package test; public class HuidiaoTest { String bookname="离散数学"; public void setStudy(StudyCallBack studyCallBack){ studyCallBack.studyMath(bookname); } } interface StudyCallBack{ void studyMath(String bookname); } public class Test{ public static void main(String[] agrs){ HuidiaoTest huidiao=new HuidiaoTest(); huidiao.setStudy(new StudyCallBack() { @Override public void studyMath(String bookname) { System.out.println(bookname); } }); } } /* * Test程序调用HuidiaoTest中的setStudy()方法,把StudyCallBack传入。 * 然后在HuidiaoTest程序中setStudy()方法中,调用callback.studyMath(bookname),把bookname参数传进去。 * */
相关文章推荐
- Java进阶10 内存管理与垃圾回收
- Android Studio导入Eclipse项目的一系列问题解决
- Android之 Eclipse NDK编译——常见错误的解决方法记录
- JavaFx使用指南
- Java RandomAccessFile用法
- Java中用内存映射处理大文件
- JAVA随机:当前年月日时分秒+五位随机数
- java异常记录集
- Java中关于字符串转成毫秒数以及毫秒数转化成字符串的总结
- java.io.IOException: No FileSystem for scheme: hdfs
- Spring 攻略第002讲
- java实现ftp文件操作的方式有哪些?
- 捷易拍与springMVC系统结合
- 一台电脑安装两个不同版本JDK
- Spring官方文档学习(3.1)
- java mail实现Email的发送,完整代码
- spring参数类型异常输出(二), SpringMvc参数类型转换错误输出(二)
- 【Java】File.createTempFile创建临时文件
- Java虚拟机运行时数据区
- Java 并发包中的读写锁及其实现分析