Java语言提供了一种接口(interface)机制。这种接口机制使Java的面向对象编程变得更加灵活。我们可以用接口来定义一个类的表现形式,但接口不能包含任何实现。在《Thinking in Java》一书中,作者对接口有这样的描述:“接口(interface)比抽象(abstract)的概念更进了一步。你可以把一个接口看成是一个纯的抽象类。”我认为作者对接口的这一解释再准确不过了。
理解并用好接口机制将帮助我们更好的掌握Java这种面向对象的编程语言。下面我们来讨论一下接口的使用规则以及相关的应用。
一、接口的定义及实现
定义接口和定义类相似,只是要把class关键字换为interface。定义方法时只需要方法名,返回类型和参数列表,不能有方法体。接口中可以定义字段,这些字段都被暗指为static和final,因此应该根据需要先定好这些字段的值。例如:
public interface Flyable ...{ void fly();} public interface Talkable ...{ void talk();} public interface Message ...{ int MAX_SIZE = 4096; String getMessage();}
public class Parrot implements Flyable, Talkable ...{ public void fly() ...{ System.out.println("Flying like a parrot…"); } public void talk() ...{ System.out.println("Hello! I am a parrot!"); }} public class TextMessage implements Message ...{ String message; public void setMessage(String msg) ...{ message = msg; if (message.length() > MAX_SIZE)message = message.substring(0, MAX_SIZE);} public String getMessage() ...{ return message;}
另外,正因为一个类可以同时实现多个接口,使得Java的面向对象特性变得非常灵活。运用这种特性,我们可以实现类似C++语言中多继承那样的特性,甚至更灵活的一些特性。下面我们来讨论一下接口在实际中的应用。
二、用接口来定义一些全局变量
因为接口内的字段都是static和final的,所以我们可以很方便的利用这一点来创建一些常量。例如:
public interface Const ants ...{ String ROOT = "/root"; int MAX_COUNT = 200; int MIN_COUNT = 100;}
public interface RandomColor ...{ int red = Math.random() * 255; int green = Math.random() * 255; int blue = Math.random() * 255;}
三、用接口来定义基本数据结构
在设计一套软件系统的初期,我们可以用接口来对一些基本数据元素的特性来进行一些描述,再根据需要进行不同的实现。请大家看看下面这个例子:
public interface User ...{ int getAge(); String getName(); String getPassword();} public class XMLUser implements User ...{
// 这里用XML技术实现User接口中的方法public int getAge() { ... } public String getName() ...{ ... } public String getPassword() ...{ ... }} public abstract class UserFactory ...{ public static UserFactory getUserFactory() ...{ return new XMLUserFactory();} public User getUser(String name); public User getAdmin(); public User createUser(String name, String password, int age); public void addUser(User user); public void delUser(User user);} public class XMLUserFactory extends UserFactory ...{
//这里用XML技术实现的UserFactory的抽象方法}
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
相关专题
- Java环境安装配置 (5668篇文章)
- Java编程开发手册 (8321篇文章)
- Java对象 (151篇文章)
- Java应用开发篇 (1088篇文章)
- 精通Hibernate之映射继承关系(四) (0次浏览)
- 何不将Java与.NET合二为一? (0次浏览)
- Hibernate的JNDI名称绑定分析 (0次浏览)
- 精通Hibernate之映射继承关系(一) (0次浏览)
- 精通Hibernate之映射继承关系(二) (0次浏览)
- 美国计算机教授语出惊人:Java对学生有害 (0次浏览)
- JDK 6 JRE 6 Update 4 (0次浏览)
- 三步教你改善Java代码质量 (0次浏览)
- Java语言入门 简述Java语言回收机制 (0次浏览)
- 2008年Java开发者最迫切的五个期望 (0次浏览)



