zoukankan      html  css  js  c++  java
  • 接口的作用

    作者:Dion
    链接:https://www.zhihu.com/question/20111251/answer/14012223
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    接口是个规范”,这句没错。
    不如直接就在这个类中写实现方法岂不是更便捷”,你怎么保证这个接口就一个类去实现呢?如果多个类去实现同一个接口,程序怎么知道他们是有关联的呢?

    既然不是一个类去实现,那就是有很多地方有用到,大家需要统一标准。甚至有的编程语言(Object-C)已经不把接口叫 interface,直接叫 protocol。

    统一标准的目的,是大家都知道这个是做什么的,但是具体不用知道具体怎么做
    比如说:
    我知道 Comparable 这个接口是用来比较两个对象的,那么如何去比较呢?
    数字有数字的比较方法,字符串有字符串的比较方法,学生(自己定义的类)也有自己的比较方法。

    然后,在另外一个负责对象排序(不一定是数字喔)的代码里面,肯定需要将两个对象比较。
    这两个对象是什么类型呢?
    Object a,b?肯定不行,a > b 这样的语法无法通过编译。
    int a,b?也不行?一开始就说了,不一定是数字。
    ....
    所以,Comparable 就来了。他告诉编译器,a b 两个对象都满足 Comparable 接口,也就是他们是可以进行比较的。具体怎么比较,这段程序不需要知道。
    所以,他需要一些具体的实现,Comparable 接口有一个方法,叫 compareTo。那么这个方法就是用来取代 <、> 这样的运算符。
    因为运算符是编译器保留给内置类型(整数、浮点数)进行比较用的,而不是一个广义的比较运算。

    如果你可以明白 JDK 自身库里面诸如 Comparable 这样已经有的接口,那么就很容易理解自己在开发程序的时候为什么需要用到接口了。
     
    我的个人理解:
    就拿工厂设计模式设计结构来说,实现的接口,接口的具体实现类,工厂的接口,工厂接口的具体实现类,在工厂的实现类中创建需要的实现类,创建方法 ,利用工程的接口作为参数,利用向上转型的特性,传人什么工程接口实现类,就会得到实现类中返回的具体实现类。
  • 相关阅读:
    技术博客开博,谢谢大家
    数据库自动备份,crontab定时任务
    服务器端口对外开放(包括,mysql,django)
    记 第一次linux下简易部署 django uwsgi nginx
    Oracle Undo表空间使用情况分析
    Oracle自动启动脚本配置
    Oracle 12cR2 RAC节点查询GV$视图报错ORA-12805
    Oracle 12cR2 RAC集群安装指南
    基于Java SSM框架和layui构建的博客、论坛、新闻、文章随笔系统(包含前后台)
    SSM实现java开发电子手机商城在线商城系统源码 MySQL数据库
  • 原文地址:https://www.cnblogs.com/daishiwen/p/7373442.html
Copyright © 2011-2022 走看看