对于java中接口的理解

来源:互联网 发布:二级减速器优化设计 编辑:程序博客网 时间:2024/05/22 04:44

一、抽象类:

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() {@Overridepublic void studyMath(String bookname) {System.out.println(bookname);}});}}/* * Test程序调用HuidiaoTest中的setStudy()方法,把StudyCallBack传入。 * 然后在HuidiaoTest程序中setStudy()方法中,调用callback.studyMath(bookname),把bookname参数传进去。 * */



0 0
原创粉丝点击