谈谈接口

 

接口

一、此接口非彼接口

   接口有两种定义:一种是我们常说的API(application program interface)应用程序接口,这类接口是有应用服务提供商或第三方软件厂商提供。如Java就提供了不少非常强大的API,各种开放应用平台也纷纷提供自己的API接口供程序员使用。第二种就是我们接下来重点要说的Java语言规范中提供的一种特性(Interface)

 

二、什么是接口(Interface

 

   通俗的讲接口就是一种规范,生活中的一个例子就是我们的每个人都在用的插线板,插线板定义了有两孔的插孔,三孔插孔、或者其他特殊的插孔,各种电器只要按照插线板的规范去制作就肯定可以接上电源。而插线板也根本不需要知道具体知道是什么东西接在我这个插孔中。

 

   Java语言规范中对接口的定义:一个接口就是一些方法特征的集合,所谓的方法特征就是指该方法只有描述而没有具体实现怎么做,好比一个乘法计算的方法只是申明一下,但并不去解决怎么把这个乘法算法的过程和结果写出来。接口就是一种抽象化的表现,但他比抽象类更抽象。(了解抽象类可以看以后写的博客或者查阅其它资料)。我们可以把电影中角色和演员分别比作接口和具体的实现类。

 

三、接口定义:

 

public interface Expression{
		public static final int num1 =1;
		public static final int num2 =2;
		boolean getResult();
}
   

四、接口的一些特性:

   1、接口中的方法的声明默认是public abstract修饰的。

   2、接口中可以包含有public static final 修饰的常量。

   3、一个类可以实现多个接口。

 

五、接口的用途:

   接口在Java语言中有着举足轻重的地位,几乎所有框架的设计都离不开接口,那它究竟用什么做用呢?

   其实接口是对Java多态特性一种很好的实现。我们来设想有这样一个情景:老师一天给学生分配一个任务就是为一个软件实现一个乘法的功能,于是该同学很快就开始写好了如下一个类:

 

public class Client{
    public static void cacl(int num1,int num2){
        System.out.println(num1*num2);
    }
}
   

如果系统不再需升级,此方法无疑是最好的一种方式,但是我们总是会不安于现状,突然几天后老师根据客户的需要又要求我们实现一个除法的功能,我们只好勉为其难的添加了一个新类,然后修改了下Client,变成了如下:

 

public class Client{
       public static void cacl(int num1,int num2,String opt){
        if("*".equals(opt)){
            System.out.println(num1*num2);
        }else if("/".equals(opt)){
            Sysetm.out.println(num1/num2);
        }
    }
}
 

 

设想一下,如果以后老师还有更多的需求,我们就的写上长长的一段if else 语句来判断了,这可不是一个很好的设计。于是乎接口派上用场了。看看下面的代码:

 

public interface Expression{
    int result(int num1,int num2);
}
 
public class multiExpression implements Expression{
   
    public int result(int num1,int num2){
        return num1*num2;
    }
   
}
 
public class Division implements Expression{
 
    public int result(int num1,int num2){
        return num1/num2;
    }
}
 
public class Client{
    public static void cacl(Expression exp,int num1,int num2){
        System.out.println(exp.result(num1,num2));
    }
}
 

 

我们发现Client类中只有一行代码了,非常的精简,以后在有其他的计算需求,我只需写一个新的类就行。根本的不用去修改Client类了。

   接口同时使用在很多种设计模式上。(最后写完这文章,发现一点都不深入,暂且适用于入门读者吧)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值