这几天好不容易的学完了java的接口虽然一直以来都相对比较了解interface 但是却从来没有细致的梳理过这些知识点 从新来一遍 才发现 哇靠 好多新大陆
个人理解interface 和 abstract 的区别不大,只不过接口里只能抽象方法 和 常量 而abstract 可以有实际的方法 和 属性
知识点一 :
接口类内的省略写法
原始: public final static int I = 1 ; 可以省略为int I = 1;
public final static void method1 (); 可以省略为void method1;
知识点二
接口可以继承于其他接口 但是要用extends 关键字
知识点三:
工厂方法:
定义一个用于创建对象的接口,让子类决定实例化哪一个类。FactoryMethod使一个类的实例化延迟到其子类。
适用性:
1. 当一个类不知道它所必须创建的对象的类的时候
2. 当一个类希望由它的子类来指定它所创建的对象的时候
3. 当类将创建对象的职责委托给多个帮助子类中的某一个,并且你希望将哪一个帮助子类是代理者这一信息局部化的时候
以下为测试代码
package testInterface;
public class TestFactoryMethod {
public static void main(String[] args) {
WorkFactory w = new StudentFactory();
w.getWork().doWork();
}
}
interface Work{
void doWork();
}
class StudentWork implements Work{
@Override
public void doWork() {
System.out.println("学生学习");
}
}
class TeacherWork implements Work{
@Override
public void doWork() {
System.out.println("教师学习");
}
}
interface WorkFactory{
Work getWork();
}
class StudentFactory implements WorkFactory{
@Override
public Work getWork() {
// TODO Auto-generated method stub
return new StudentWork();
}
}
class TeacherFactory implements WorkFactory{
@Override
public Work getWork() {
// TODO Auto-generated method stub
return new TeacherWork();
}
}