阅读代码时,窥得接口继承其它的接口,想着“接口也能被继承,不是实现接口吗?”,思忖之后,区分了继承和实现之间的语义差别,继承是“获取父辈流传下来的东西”,Java中,并不是说只有类可以继承类,当有接口需要获取另个接口的定义时,它也可以继承那个接口,这是符合语义的。而实现的语义是将已定义过的方法,填充它的内部运行机制。
import sun.misc.Lock;
/**
* Created by Songrong on 1/22/14.
*/
public class HelloJava
{
public static void main(String[] args)
{
SyncCounter syncCounter = new SyncCounter();
syncCounter.incrementAndGet();
System.out.println(syncCounter.getCount());
}
}
interface Lockable
{
void lock();
void unlock();
}
interface Countable extends Lockable
{
long getCount();
long incrementAndGet();
}
class SyncCounter implements Countable
{
private long count = 0;
private Lock lock = new Lock();
@Override
public long getCount()
{
return count;
}
@Override
public long incrementAndGet()
{
lock();
count++;
unlock();
return count;
}
@Override
public void lock()
{
try
{
this.lock.lock();
} catch (InterruptedException e)
{
e.printStackTrace();
}
}
@Override
public void unlock()
{
this.lock.unlock();
}
}