Java中接口的感悟

在Java的学习中,学了这么久才发现面向接口编程的好处很多,其中最后重要的莫过于可以拥抱变化。在了解到接口的设计中,才发现自己之前对接口的真正意义上的功能只了解一半。

大多编程的经验下,Java中的接口是用于表示一种标准,只定义了一些标准,一些方法的声明而没有实现,表示将方法名暴露给远程客户端。如USB接口等。这便是大家所熟悉的,也是常用的接口功能。但是接口中还有一种重要的功能,即接口表示一种能力。

接口的另一种功能中,表示一种能力,整个接口内部没有任何方法或属性,是一个内容为空的接口,但是该接口代表了一种能力。常以able结尾。如java.io包中的Serializable接口的设计,该接口代表一种能力,表示可以序列化,实现了该接口的类则说名该类可以序列化,这对与对象序列化、远程传输有着重要作用。没有实现该接口则不具有序列化的能力。在JDK中该接口的源码如下:

/*
 * @(#)Serializable.java 1.25 05/11/17
 * Copyright 2006 Sun Microsystems, Inc. All rights reserved.
 * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 */
package java.io;
public interface Serializable {//该接口没有任何内容仅表示一种能力。
}


另一个例子。Clonable,该接口表示可克隆的,表示一种克隆的能力,实现了该接口的类说明该类可以克隆,可以调用Object.clone()方法进行克隆,否则是不可克隆的,若调用该方法,则会抛出ClassNotSupportedException异常。在JDK中该接口的源码如下:

/*
 * @(#)Cloneable.java 1.17 05/11/17
 *
 * Copyright 2006 Sun Microsystems, Inc. All rights reserved.
 * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 */
package java.lang;
public interface Cloneable {    //该接口没有任何内容,表示一种能力。
}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值