我理解拥有接口的重点是强制实现它的类实现/定义该接口中的所有抽象方法。
但是,在Java中的Object Serialization(转换为字节流)的过程中,要序列化的对象的类是必须实现Serializable接口的实例。 但是,我看不到定义接口的方法。那么,是否有一个ZERO方法的接口,如果是的话,甚至是可能的,如果是的话,如果它没有方法的目的是什么?
答案 0 :(得分:2)
Serializable
界面是标记界面。如果一个类实现它,那么运行时系统就知道该类是可序列化的。
在现代Java中,现在可以使用注释实现此效果,但在定义此接口时它们并不存在。
答案 1 :(得分:1)
答案 2 :(得分:0)
正如我已经说过的,0方法接口的目的是关于纯合同。 让我在下一个例子中解释一下:
假设我们有一个由多个接口组成的简单数据访问层,如:
DeletableDao,InsertableDao,UpdatableDao等..以及像DaoImpl这样的实现类:
假设我们有这样的实体类:
public Person implements DaoEntity {
private int id;
private String name;
// getters and setters
}
由于纯合同,DaoEntity是0方法的接口:
public DaoEntity {
}
让我们说DeletableDao看起来像这样:
public interface DeletableDao<T extends DaoEntity> {
void delete(T t);
}
和实现类:
public DaoImpl implements DeletableDao<Person> {
public void delete(Person p) {
// Delete person
}
}
这一切意味着什么? DaoEntity
界面的目的是什么?这意味着只有DaoEntity
子类的实例可以传递给delete
方法并删除。