接口的解释

网上看到的接口的解释,有意思:

这是一个规范和思维习惯问题。接口是程序对功能不同,但使用方法相同的类的概括和定义,如果你的很多类要继承同一个接口,但又经常都不需要实现所有这个接口的所有方法或者属性,那就是你的接口设计的有问题。举个例子:比如, "手动档轿车" 这个接口,它需要有以下几个方法就能开走:方向盘、油门、刹车、排档、离合器 。 奔驰,宝马,兰博基尼,法拉利,奥迪,悍马 这几个具体的车型相当于"类",它们都继承"手动档轿车",我会开手动档轿车,那么这些实现 "手动档轿车" 接口的随便一辆车拿给我,我都能开走。 但是你造了那么一辆车,它没有刹车、没有排档、没有离合器,然后告诉我这是一辆"手动档轿车"(继承"手动档轿车" 接口) , 我拿去,是能开走,但是一旦想停车、换档,才发现没有这几个设备(方法,属性),后果是什么? 没人规定你造的这个车不能叫"手动档轿车",但很显然别人要用开手动档轿车的方法来开你这个车,十有八九会出事故。所以,编译器规定你继承了一个接口,你就必须实现它的所有成员,就像规定你造"手动档轿车",必须把方向盘、油门、刹车、排档、离合器全部装全才行。
时间: 2024-09-30 11:40:52

接口的解释的相关文章

Java语言中反射动态代理接口的解释与演示

Java语言中反射动态代理接口的解释与演示 Java在JDK1.3的时候引入了动态代理机制.可以运用在框架编程与平台编程时候捕获事件.审核数据.日志等功能实现,首先看一下设计模式的UML图解: 当你调用一个接口API时候,实际实现类继承该接口,调用时候经过proxy实现. 在Java中动态代理实现的两个关键接口类与class类分别如下: java.lang.reflect.Proxy java.lang.reflect.InvocationHandler 我们下面就通过InvocationHan

【原创】SM4password算法源代码接口具体解释

近期几天想把cryptdb的加密算法换成国产的sm4加密算法.所以花了时间研究了一下sm4的源代码和基本原理,避免忘记,写下这篇博客以作记录. 先介绍一下SM4算法,SM4是我们自己国家的一个分组password算法.是国家password管理局于2012年公布的. 网址戳→_→:http://www.cnnic.net.cn/jscx/mixbz/sm4/ 详细的password标准和算法官方有很详尽的PDF文档以供查阅,戳→_→:http://218.241.108.63/wiki/imag

INotifyPropertyChanged接口的实现

何时实现INotifyPropertyChanged接口 官方解释:INotifyPropertyChanged  接口用于向客户端(通常是执行绑定的客户端)发出某一属性值已更改的通知.官方解释的很模糊,估计是个人看了都不知道到底什么时候需要实现INotifyPropertyChanged接口.小梦通过实际测试给出明确结论: 首先:OneTime模式:毫无意义,因为它的绑定只有初始时候绑定一次,根本谈不上改变!自然也就谈不上实现INotifyPropertyChanged接口. 然后是OneWa

INotifyPropertyChanged接口的详细说明

在windows phone开发8.1:数据绑定中,我们了解了数据绑定的基本知识.今后几篇文章会继续深入了解数据绑定.今天我们来看在数据绑定中十分重要的INotifyPropertyChanged接口的实现. 何时实现INotifyPropertyChanged接口 官方解释:INotifyPropertyChanged  接口用于向客户端(通常是执行绑定的客户端)发出某一属性值已更改的通知.官方解释的很模糊,估计是个人看了都不知道到底什么时候需要实现INotifyPropertyChanged

代码优化(长期更新)

前言 代码优化,一个很重要的课题.可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是,吃的小虾米一多之后,鲸鱼就被喂饱了.代码优化也是一样,如果项目着眼于尽快无BUG上线,那么此时可以抓大放小,代码的细节可以不精打细磨:但是如果有足够的时间开发.维护代码,这时候就必须考虑每个可以优化的细节了,一个一个细小的优化点累积起来,对于代码的运行效率绝对是有提升的. 代码优化的目标是:

35 个 Java 代码性能优化总结

代码优化的目标是: 1.减小代码的体积 2.提高代码运行的效率 代码优化细节 1.尽量指定类.方法的final修饰符 带有final修饰符的类是不可派生的.在Java核心API中,有许多应用final的例子,例如java.lang.String,整个类都是final的.为类指定final修饰符可以让类不可以被继承,为方法指定final修饰符可以让方法不可以被重写.如果指定了一个类为final,则该类所有的方法都是final的.Java编译器会寻找机会内联所有的final方法,内联对于提升Java

设计模式初探(一)

序,设计模式就像修炼武功的心法口诀.虽不实用,但是却威力无穷,需要我们在代码设计,框架设计时多多品味. 一.Facade模式 一句话描述:为子系统中的一组接口提供了一个统一的接口. 解释:facade定义了一个更高级别的接口,使得子系统更易于使用.你可以使用facade来将一些复杂的对象交互简化成一个单独的接口. 二.

35 个 Java 代码性能优化总结 10-20

11.乘法和除法使用移位操作 例如: for (val = 0; val < 100000; val += 5)  {  a = val * 8;  b = val / 2;  } 用移位操作可以极大地提高性能,因为在计算机底层,对位的操作是最方便.最快的,因此建议修改为: for (val = 0; val < 100000; val += 5)  {  a = val << 3;  b = val >> 1;  } 移位操作虽然快,但是可能会使代码不太好理解,因此最

浅谈组装主机的一些注意问题

整体说来组装主机,需要购买的硬件: CPU(CPU风扇), 主板(一般集成显卡), 内存条, 硬盘, 电源, 机箱.或者 显卡. 在选择配件的时候,好考虑配件制件的接口兼容性问题!!! 主板与配件之间的接口要提前判断是否兼容.(1)主板与CPU,(2)主板与内存条, (3)主板与显卡. 主板与机箱制件的搭配兼容,有的机箱安装不了主板的接口. 目前可以推荐的配置(家用): CPU: i5-4460(购买intel原装,送CPU风扇一个) ¥1329.00 接口:LGA 1150 4核 游戏/影音,