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

内容

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才是创建对象,这里是接口作为成员变量类型接口不能直接实例化,但是可以声明。接口可以作为成员变量,只是创建对象的时候需要使用多态

总结

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值