java
来源:互联网 发布:三菱人机界面怎么编程 编辑:程序博客网 时间:2024/05/19 13:55
接口interface 的作用是什么?
假设在以前我们开发了某个业务的实现类Demo1,现在根据需求我们需要重新设计该业务的实现类Demo2且不能影响其它业务的运行。
这时候就需要一个标准,一个针对该业务实现的一个标准接口(standard interface)。而所有实现该接口(interface)的类都需要去实现该接口的方法。通过java向上转型实现针对不同的业务有不同类的实现。
注释:
1、interface 只有方法名和返回值,没有方法体,都是抽象方法。切不能直接实例化(通过他的实现类向上转型获得该接口的实现)。
Test.java
package Test;public interface Test{ //定义了一个接口方法 public String getTestText();}
Test1.java
package Test;public class Test1 implements Test{ @Override public String getTestText() { return "this class name is test1"; }}
Test2.java
package Test;public class Test2 implements Test{ @Override public String getTestText() { return "this class name test2"; }}
Index.java
import Test.Test;public class Index{ public static void main(String[] args) throws Exception { Test test1 = testIndex("Test.Test1"); System.out.println(test1.getTestText()); Test test2 = testIndex("Test.Test2"); System.out.println(test2.getTestText()); } public static Test testIndex(String classPath) { Test test = (Test)Class.forName(classPath).newInstance(); return test; }}
至此,你看出这样用的好处了吗?Test1和Test2都实现了接口Test 如果以后要更改Test的实现或者是针对不同业务有不同的Test实现,我们都可以动态的载入针对Test不同的实现类。
接口与接口之间是可以继承的
Demo1.java
package Demo;public interface Demo1{ public String getName();}
Demo2.java
package Demo;public interface Demo2 extends Demo1{ public String getAge();}
Demo3.java 继承Demo2 需要实现Demo1和Demo2中的接口方法
package Demo;public class Demo3{ @Override public String getName() { return "my name is Mr.tan"; } @Override public String getAge() { return "my age is 22"; }}
其实本质就是一个类的多钟表现形态(多态)。针对不同的业务,相同的接口或者是类通过不同的实现类向上转型表现出不同的形态。
阅读全文
0 0
- java
- JAVA
- JAVA
- JAVA
- java
- Java
- Java
- JAVA:
- java
- java
- java
- java
- Java
- java
- java
- java
- JAVA?
- java
- PF_RING实现分析
- Node.js进行web开发
- sql-365 行转列 模糊搜索关键字
- hadoop2.7.3 datanode无法启动的问题
- Xiangtan Invitation Contest 2017
- java
- 《TCP/IP详解 卷1:协议》 读书笔记 第22章 TCP的坚持定时器
- UVC 摄像头驱动(二)描述符分析
- IOS 从网上下载的项目,运行时出现“The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update y”
- Android系统音视频架构
- java基础提高篇--final关键字
- [李景山php] 深入理解PHP内核[读书笔记]--第四章:函数的实现 --函数的参数-1
- 使用jmc监控远程tomcat
- 融云自定义消息注意事项