我先定义一个接口,假设是一个数据队列的接口,定义如下:
public Interface DataQueue { public void putdata(Object obj); // 放入一个对象到队列中 public Object getdata(); // 从队列中得到一个对象 }
在实现该接口的方法时,要将putdata,getdata 实现成synchronized 和static的方法可以做到吗?
public QueueA implements DataQueue { // 实现putdata方法 // 实现getdata方法 }
如果实现类中的方法要实现成线程同步或是静态的该如何用接口定义呢?
接口方法的定义:
只能是public 或者 缺省 修饰的。
给接口方法的关键字只能是abstract,也是默认的。
不能是static,final,synchronized ..等等。
所以说你要在接口定义方法时,来实现你所说的功能,是不可能的。只能在实现类里来实现。
public class QueryA implements DataQuery
{
private static QueryA queryA = new QueryA ();
private QueryA ()
{
}
public static QueryA getInstance()
{
return queryA;
}
public synchronized Object getdata()
{
return null;
}
public synchronized void putdata(Object obj)
{
}
}
// 这样不知是否满足你的需求,把实现类写成单例模式。