今天看啥  ›  专栏  ›  独饮敌敌畏丶_4109

Java项目实战开发Day09 2020-03-24

独饮敌敌畏丶_4109  · 简书  ·  · 2020-03-25 17:17

内容

1.接口基础知识
2.接口知识应用之利用接口实现数据回调

一.接口基础知识

详细请看: https://www.jianshu.com/p/3d0c0a302696

注意点强调

①接口可以 多继承
②接口 不能被实例化 (没有构造方法),但是可以 作为成员变量被声明
③接口里面只能定义 静态成员变量 (因为不能被实例化),都是被 public static final 默认修饰(可以替代枚举)


④接口里面只能定义 抽象方法 (因为都是给别人用的,不需要自己实现, 谁用谁实现 )。默认是 public abstract 修饰
⑤接口里面还可以定义接口,访问的时候就类似变量, . 出来

二.接口知识应用之利用接口实现数据回调

接口实现数据回调也是一种 代理设计模式

1.使用实例

public class 测试程序   {                                                                                                             
            
    public static void main(String[] args) throws Exception  {

        SplashView sv = new SplashView();
  
    
    }
    
}
public class SplashView implements Http.OnHttpFinishListener{

    //构造方法
    public SplashView() {
        
        //开始下载数据
        Http http = new Http();
        
        //6.必须传递当前对象给功能类
        http.setListener(this);//用到了多态
        
        //7.调用功能类,完成功能
        http.getData("www.baidu.com");
    }
    
    //5.必须实现接口内部的所有抽象方法
    public void onSuccess(String img) {
        System.out.println("展示图片:"+img);
    }
    
    public void onFailure(String err) {
        System.out.println("下载失败:"+err);
    }
}
public class Http {
    
    //2.定义一个变量接收谁来监听网络下载完毕的事件
    private OnHttpFinishListener listener;
    
    public void getData(String url) {
        System.out.println("开始下载。。。");
        System.out.println("图片下载完毕");
        
        //3.任务结束,回调数据
        listener.onSuccess("敌敌畏的照片下载成功");//用到了多态
    }
    
    //4.提供给set方法保存当前的监听者
    public void setListener(OnHttpFinishListener listener) {
        this.listener = listener;
    }

    //1.定义一个接口,统一返回数据的方式
    public interface OnHttpFinishListener{
        
        void onSuccess(String img);     
        void onFailure(String err); 
        
    }
}

输出结果

开始下载。。。
图片下载完毕
展示图片:敌敌畏的照片下载成功

上述程序的图片表示

2.疑问

先看下图

当时我有这样的疑问:为何这里接口能创建对象?

这里接口其实 没有创建对象 ,因为 new才是创建对象 ,这里是接口作为 成员变量类型 接口不能直接实例化,但是可以声明。 接口可以作为成员变量,只是 创建对象的时候需要使用多态

总结

今天学到了很多,复习了接口的知识,虽然之前学过,但是基本没用过,但是今天,通过数据回调那个程序,对接口理解更深刻了:接口使代码和代码之间耦合度降低。能否熟练运用接口也是衡量程序员是否优秀的重要标准!通过那个程序,也复习了多态,对多态的理解也更深了!总之今天还不错!




原文地址:访问原文地址
快照地址: 访问文章快照