本文实例讲述了java interface 接口的使用优点。分享给大家供大家参考,具体如下:
接口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"; } }
其实本质就是一个类的多钟表现形态(多态)。针对不同的业务,相同的接口或者是类通过不同的实现类向上转型表现出不同的形态。
更多java相关内容感兴趣的读者可查看本站专题:《Java面向对象程序设计入门与进阶教程》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》
希望本文所述对大家java程序设计有所帮助。
我们已经知道,Clojure代码最终在Java虚拟环境中运行。 因此,只有Clojure能够利用Java的所有功能才有意义。 在本章中,我们将讨论Clojure和Java之间的关联。 调用Java方法 可以使用点表示法调用Java方法。 一个例子是字符串。 由于Clojure中的所有字符串都是Java字符串,因此可以在字符串上调用普通的Java方法。 有关如何完成此操作的示例,请参见以下程序。 例
本文向大家介绍深入解析Java接口(interface)的使用,包括了深入解析Java接口(interface)的使用的使用技巧和注意事项,需要的朋友参考一下 Java接口(interface)的概念及使用 在抽象类中,可以包含一个或多个抽象方法;但在接口(interface)中,所有的方法必须都是抽象的,不能有方法体,它比抽象类更加“抽象”。 接口使用 interface 关键字来声明,可以看做
打开“新建Java接口向导” New Java Interface向导可用于创建新的Java接口。 有很多方法可以打开这个向导 - 单击“文件”菜单,然后选择“新建”→“界面”。 右键单击包浏览器并选择“新建”>“界面”。 单击class下拉按钮( )在工具栏中选择界面( )。 在启动New Java Interface向导之前,如果可能,请选择要在其中创建接口的程序包,以便向导可以自动为您填写程
Interface接口 这一章我们要讲解一下Go的另外一个重要类型——接口类型。 Go 语言不是一种 “传统” 的面向对象编程语言:它里面没有类和继承的概念。但是 Go 语言里有非常灵活的接口概念,通过它可以实现很多面向对象的特性。 接口定义 普通定义形式: type Interface Shape{ //最普通的形式 Area() float64 } 空接口定义: 空接口,即
本节介绍 TypeScript 各种类型接口的声明及其使用方法,接口在 TypeScript 中是极其重要的,我们使用接口来定义契约,如类型命名、属性检查、函数类型定义等。 在下一节学习完类之后,你会知道类也可以作为接口来使用。接口的种类繁多,在学习过程中一定要亲手编写,以达到灵活使用。 1. 慕课解释 TypeScript 的核心原则之一是对值所具有的结构进行类型检查。 它有时被称做“鸭式辨型法
问题内容: 我刚刚了解了Java Collections Framework如何在链表中实现数据结构。据我了解,这是一种遍历列表等数据结构中各项的方式。为什么使用此接口?为什么是方法,而不是直接编码为数据结构实现本身? 从Java网站:链接文本 公共接口Iterator 集合上的迭代器。在Java集合框架中,迭代器代替了枚举。迭代器与枚举有以下两种不同: 迭代器允许调用者在迭代期间使用定义明确的语