我对接口的理解是,接口是方法声明的集合,而其主要是为了描述类的功能,但不明确指出具体的实现方式。
接口有以下特征:
1、接口中只可以定义常量和声明方法;
2、接口中的任何方法都是public类型的;
3、接口不能使用new操作符实例化;
问题:
1、关于Cloneable接口,在JDK帮助文档中有这样一段描述
"如果在没有实现 Cloneable 接口的实例上调用 Object 的 clone 方法,则会导致抛出 CloneNotSupportedException 异常。"
如果我们再找找 Object的clone()方法,发现其实 protected 的。
也就是说 Cloneable接口是Java的标记接口(Serializable也是)。
2、很多情况下我们都需要自己去写接口。特别是要实现多态时。
举个例子:
某程序要读取外部文件,但按需求的不同,有两个格式不同的文件,这导致了读取方式不同,这时我们就可以用先写一个接口声明读取文件方法。再让两个类实现该接口,两个类中分别写了两种读取文件的代码。
在读取文件时,我们就可以这样写
[code="java"]IReadFile readFile = new ReadFileA();
//当需要读取另一文件时,就可以简单的修改代码
IReadFile readFile = new ReadFileB();[/code]
3、记住这段话:
"抽象不应依赖细节,细节应该依赖抽象"
比如:Web项目,manager、Dao一般都需实现接口。
以上是我对接口的总结,希望对你有帮助