Java中的接口对象

最近在看一些Java代码,同时也在边看边学。看到这个标题你也许很奇怪,Java中何来接口对象?其实它是我造的一个词,因为我看到Java中可以把接口作为类型来使用,看上去跟一个普通的对象声明类似。

比如,定义了下面的一个Sourcable接口:

package pattern.decorator;  
  
public interface Sourcable {  
    public void operation();  
  
} 

下面代码中的Sourcable sourcable声明就是我所说的接口对象:

package pattern.decorator;  
  
public class Decorator1 implements Sourcable {  
    private Sourcable sourcable;  
    public Decorator1(Sourcable sourcable){  
        super();  
        this.sourcable=sourcable;  
    }  
    public void operation() {  
        System.out.println("第一个装饰器前");  
        sourcable.operation();  
        System.out.println("第一个装饰器后");  
  
    }  
  
} 

作为一个iOSer来说,刚开始看到这个还是挺疑惑的,怎么会有一个接口对象呢?
那么对于sourcable应该是怎么赋值呢?答案是用实现了Sourcable接口的类的实例对象赋值给它。

现在懂了,Sourcable sourcable;不就和Objective-C中的这个代码等效嘛:

id<Sourcable> sourcable;

意即,声明了一个遵守Sourcable协议的任意类型的实例对象sourcable,只要某个类遵守了Sourcable协议,它的实例对象就可以赋值给sourcable。

可能是先入为主,我觉得Objective-C中的这种表达更易于理解。另外,也可以看出多掌握几门语言没坏处,是可以触类旁通的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 苹果官方文档翻译 《Objective-C语言编程》(Programming with Objective-C) ...
    fever105阅读 26,420评论 19 129
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,740评论 30 472
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 35,213评论 18 399
  • 1. 从去年PAPI酱开始,开启了全民短视频时代。随后涌现出一大波民众导演,僵尸太多,植物明显不够用。 看着PAP...
    宣鸣舅舅阅读 366评论 0 1
  • 灯影昏黄,树影疏离,人影浅积。 心无所定,与影子何用。 夜色浑杂,边际即白,放肆纯粹。 万千路径,何必逐夜而憩。
    流氓蚊阅读 358评论 0 2

友情链接更多精彩内容