接口(interface)是否只能在相同的程序包和子程序包中访问?
我用默认修饰符定义了一个接口(interface):
package com.mycompany.myapp.dao;
import java.io.Serializable;
interface BaseDao<T, Id extends Serializable> {
public void create(T t);
public T readById(Id id);
public void update(T t);
public void delete(T t);
}
现在,我有一个子包,我想在其中定义一个实现
BaseDao
的类。所以我写了这段代码:package com.mycompany.myapp.dao.jpa;
import java.io.Serializable;
public class BaseDaoJpa<T, Id extends Serializable> implements BaseDao<T, Id> {
...
}
但是我得到这个错误:
那么这是Java对接口(interface)的限制还是我做错了方法?
谢谢
最佳答案
在Java中,没有“子程序包”之类的东西。不要被这些点所迷惑。 com.mycompany.myapp.dao
和com.mycompany.myapp.dao.jpa
是两个相互独立的独立软件包。
因此,回答您的问题:不,不可能使接口(interface)仅对子程序包可见。您可以公开您的界面,但随后所有其他软件包都可以看到该界面。