黑马程序员技术交流社区

标题: 自学时发现的一个关于“接口”实现的理解问题。已经解决,大家看看我理解是否正确。 [打印本页]

作者: Nick_KJ    时间: 2015-4-5 11:22
标题: 自学时发现的一个关于“接口”实现的理解问题。已经解决,大家看看我理解是否正确。
原文代码位于:Java API 1.6 中的 java.util.concurrent.locks中。大家在学到“多线程通信时”也许会遇到。
代码如下:
   final Lock lock = new ReentrantLock();
   final Condition notFull  = lock.newCondition();
   final Condition notEmpty = lock.newCondition();
其中,Lock 和 Condition都是接口类型。我们知道接口类不可以创建对象。那么怎么解释第二行和第三行代码呢。
第一行代码是:多态,这个好理解。
查文档得出:Lock有一个返回值类型为Condition的方法:newCondition,返回绑定到此lock的Condition对象。这一句话我们可以得出两个结论:1.接口类可以作为返回值类型(之前百度上有一些人在疑惑这个问题);2.接口虽然不可以创建实例对象,但是是不允许用 new 这种方法建立;而此处为lock下的newCondition方法。

因为这个问题困扰了一个晚上,分享给大家,如果我的理解出现了偏差,还希望大家能指出来。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2