java的interface总结
2016-03-01 16:49
281 查看
这几天好不容易的学完了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();
}
}
个人理解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();
}
}
相关文章推荐
- java实现获取字符串strSub在父字符串strFather中出现的次数
- java运行jar文件中某个类
- Maven仓库—Nexus环境搭建及简单介绍
- Spring AOP 动态代理
- Java开发中的23种设计模式详解(转)
- 笔试题之javaweb
- JAVA常量(字面值)表示方法
- 第一堂java课
- 使用Eclipse调试Java的十个技巧
- springMVC中上传文件
- 整理 javaweb 连接数据库方法
- spring 对于hibernate操作的封装 HibernateCallback接口的学习
- java 线程操作
- java中的final变量
- 笔试题之java基础
- java实现字符串指定的部分进行反转
- Java中的Collection和Map(四)--Set体系
- Java 依赖注入标准 JSR-330 简介
- 关于java中泛型问题
- java动态代理与AOP