个人对interface接口的理解

一句话"类是对象的抽象,接口抽得更厉害,是类的抽象",那这句话是什么意思呢?也就是类中包括很多其他的对象,是对象的一个集合,而这些对象就是类的属性或方法;而接口则包括许多类,但是他和类又有着不同。试想如果"接口"是要把类放到"接口"中,那么所谓的"接口"实际上就是一个类了。所以接口绝不是把类放到内部去;那么我们就要理解”接口“的含义,接口在现实中就是插座的意思,而插座是有两面的,一面是给插头的插孔,另一面是给电路的。无论电路时多么复杂,插孔就是那种形状,或是双孔的,或是三孔的。那么所有双孔的电路是不是就可以有同一个插座;不同的类对应的就是不同的电路,插孔就是接口中的方法,这样接口和类的关系就呼之欲出了:所有有相同方法的类,就可以构成同一个接口;

再举一个例子,现在有一个组织叫Wcg,是处理国家之间的经济的,管理的人员给这个组织规定了相关的法律的名字,而没有写入具体的规定。突然有一天不知道怎么的美国想不开,加入了这个组织,之后英国,法国和德国发现老大加了,自己也想加进去,加的国家越来越多了。之后各个国家因为地域,文化,经济的差异而导致要有不同的法律。但是他们的相同类型的法律都叫一个名字,就比如说关于经济的就都叫经济法;一天中国想和里面的一些成员做生意,那中国就要了解成员具体的经济法。但我们的习大大每一天都很忙,没有时间来研究各个国家的法律。那怎么办呢?习大大就想出了一个办法:我决定和哪个国家做生意,在去看人家的法律不就行了嘛,反正他们都是Wcg的,法律名字都一样。

在这个例子里面:wcg就是接口,wto的法律就是接口的一些方法的声明,wto中具体的国家就是实现接口的类,就要在类中实现接口的方法;中国对应的就是会真正调用到wto中方法的类(注意是调用,而不是定义),即这个类中一定会包含一个以接口作为参数的方法,而这个方法在调用的过程中要传入实现接口的类的对象。

以上是暂时我对接口的理解,因为接触的例子不是很多,可能会有以偏概全的嫌疑,但大致的就是这个意思!

(例子中的名称都是胡诌的,如有雷同,存属巧合)

(转载请表明出处,谢谢)

时间: 2024-12-08 23:53:42

个人对interface接口的理解的相关文章

接口(Interface)的深入理解

一:接口是规范(不展开) 二:接口可以看成是一个特殊的类 1: 接口可以定义"接口类型变量",就好像类可以定义类类型的变量(或者说是引用类型变量).申明一个类类型的变量,然后我们通常使用构造器创建对象,并把该对象赋值给类类型的变量(或者说引用变量引用到我们创建的对象).这样,我们就可以通过类类型的变量来操作我们实际new出来的对象.于此类似的,我们也可以创建接口类型的变量(或者说是接口类型的引用变量),并把一个实现了该接口的实现类的对象赋值给接口类型的引用变量(或者说接口类型的引用变量

golang中interface接口的深度解析

什么是interface,简单的说,interface是一组method的组合,下面这篇文章主要给大家深度解析了关于golang中的interface接口,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧. 一 接口介绍 如果说gorountine和channel是支撑起Go语言的并发模型的基石,让Go语言在如今集群化与多核化的时代成为一道亮丽的风景,那么接口是Go语言整个类型系列的基石,让Go语言在基础编程哲学的探索上达到前所

Interface接口的设置是由其他模块决定的

描述:我写了个登陆器   无非就是登陆和注册这2个功能,当然还有一个验证码功能 根据职责性,我登陆器不涉及任何用户有关操作. 但我需要规定用户模型必须有以下几个功能,我登陆器才能使用,登陆.注册.根据名字获取用户的个人信息. 所以我设置如下 <?php interface IMember {    /**   * 根据用户名获取用户信息 用户名不指定可以是邮箱.昵称或者手机号码   * @param String $username   */  public function getOneMem

接口的理解

这个是自己的理解,因为我也是刚开始编程的菜鸟,所以会有很多错误,欢迎大家指导! 首先按我的理解来说一个例子(这个例子被很多人提过,下面的这个是按我自己的理解来说的): 小王是一个苦逼(酷毙)程序员,他要开发一个程序,其中要实现一个功能:连接到一个数据库,要对数据库进行一些操作.实现功能首先需要有一个数据库,在开发的时候他使用的A厂家的数据库.假设A厂家提供的类库中实现小王需要的功能的类是DataA,小王创建一个DataA实例,然后调用DataA类中的方法.假设DataA类连接数据库的方法为Con

关于Java中继承和接口的理解

关于Java中继承和接口的理解 Java语言中,为了实现代码重用,设计了继承这一机制,但是,其设计成单继承,这样设计是有原因的,如下图: Figure1:deadly diamond of death 此图问题称为菱形问题(diamond problem),就是说,当A的子类B和C同时实现了A中的方法,则同时继承了B和C的子类D在调用该方法时会出现混乱,无法得知该调用哪一个方法. 既然不能实现多继承,我们就会考虑把很多方法就写在父类里,或者继承抽象类,实现其方法,但是,这样会导致一个问题,比如说

java====interface接口

package cn.china; abstract class AbsDemo{ abstract void show1(); abstract void show2(); } /** *当一个抽象类中的方法都是抽象的时候,这时可以将该抽象类用 *另一种形式定义和表示,就是 接口 interface * *定义接口使用的关键字不是class,是interface. **/ interface Demo5{ public static final int NUMBER=4; public abs

【转】C#中对IDisposable接口的理解

IDisposable接口定义:定义一种释放分配的资源的方法. .NET 平台在内存管理方面提供了GC(Garbage Collection),负责自动释放托管资源和内存回收的工作,但它无法对非托管资源进行释放,这时我们必须自己提供方法来释放对象内分配的非托管资源,比如你在对象的实现代码中使用了一个COM对象 最简单的办法可以通过实现Finalize()来释放非托管资源,因为GC在释放对象时会检查该对象是否实现了 Finalize() 方法. 有一种更好的,那就是通过实现一个接口显式的提供给客户

Java知多少(39)interface接口

在抽象类中,可以包含一个或多个抽象方法:但在接口(interface)中,所有的方法必须都是抽象的,不能有方法体,它比抽象类更加“抽象”. 接口使用 interface 关键字来声明,可以看做是一种特殊的抽象类,可以指定一个类必须做什么,而不是规定它如何去做. 现实中也有很多接口的实例,比如说串口电脑硬盘,Serial ATA委员会指定了Serial ATA 2.0规范,这种规范就是接口.Serial ATA委员会不负责生产硬盘,只是指定通用的规范. 希捷.日立.三星等生产厂家会按照规范生产符合

C#中对IDisposable接口的理解

http://blog.sina.com.cn/s/blog_8abeac5b01019u19.html 本人最近接触一个项目,在这个项目里面看到很多类实现了IDisposable接口.在我以前的项目中都很少用过这个接口,只知道它是用来手动释放资源的.这么多地方用应该有它的好处,为此自己想对它有进一步的了解,但这个过程远没有我想象中的简单. IDisposable接口定义:定义一种释放分配的资源的方法. .NET 平台在内存管理方面提供了GC(Garbage Collection),负责自动释放