浅谈Java Interface

原创 2015年11月18日 19:49:29

      对于Java初学者来说,可能会有这样一个疑惑----我们定义了一个接口,但是我们在实现这个接口的类中,还要实现接口中的所有方法,那还不如直接就在这个类中写实现方法,岂不更便捷,还省去定义接口麻烦?那么接口在Java中的作用到底是什么呢?

      1、定义

           接口是由一组相关的空方法构成的。

      2、作用

         接口是个规范。因为它可能要被多个类去实现,程序怎么知道他们是有关联的呢?既然不是一个类去实现,那么是有很多地方有用到,大家需要统一标准。甚至有的编程语言(Object-)已经不把接口叫interface,直接叫protocol。

        统一标准的目的,是大家都知道这个是做什么的,但不需要知道具体怎么做。比如,Comparable找个接口是用来比较两个对象的,那么如何比较呢?

        数字有数字的比较方法,字符串有字符串的比较方法,学生(自己定义的类)也有自己的比较方法。

       软件开发中一个很重要的一个理念就是“解耦”,接口和接口实现就是在干这件事,定好规范,任你实现,效率可高,可低,实现内容也可随时间变化而变化,但是调用关系是不变的。

    3、优点:

       (1)程序是可拓展的。你在修改你具体的实现类的时候,不需要去修改调用它的类;这个呢,是java编程时候强调的“对拓展开放,对修改关闭”原则。当然这也是java多态性的体现。

       (2)就是java通过Interface实现多继承。继承的一个好处就是代码的复用,减少代码错误。

    4、生活实例

  (1)假如我开了一个宠物粮店,声明所有宠物都可以来我这里买粮食,这就相当于一个接口。

      public interface PetRestaurant{ 

                    public void buy();

             }

       当一只狗看到了,知道自己是宠物,所以它去实现这个接口

     public class DogPet implements PetRestaurant{

          @Override

          public void buy(){

            System.out.println("我是狗,我要买狗粮");

           }

}

当一只猫看到了,知道自己是宠物,所以它去实现这个接口

     public class CatPet implements PetRestaurant{

          @Override

          public void buy(){

            System.out.println("我是猫,我要买猫粮");

           }

}

当狗和猫来我的店之前,我是不知道他们到底是什么,但是当他们来到我的店,我就知道一个要猫粮,一个要狗粮。因为他们都实现了我这个接口,都可以买。

下面这个类相当于一个接待顾客的类,即店小二,他接待所有实现了我这个宠物店接口的动物,传进来一个PetRestaurant类型的宠物,注意,这个PetRestaurant是接口

public class test{

            public  void buy(PetRestautrant pet){

                        pet.buy();

              }

}

好了,这个时候我这个老板出现了,我可以给他们卖粮食了,相当于测试类

public class Tests{

public static void  main(String[] args){

  test t=new test();

   PetRestaurant dog=new DogPet();

  PetRestaurant cat=new CatPet();

  t.buy(dog);

  t.buy(cat);

}

}

MIPI-技术浅谈

转自:http://blog.chinaunix.net/uid-27411029-id-3302040.html 对于现代的智能手机来说,其内部要塞入太多各种不同接口的设备,给手机...
  • haozi0_0
  • haozi0_0
  • 2015年11月09日 12:12
  • 1170

浅谈java及应用

给初学者之一:浅谈java及应用   学java不知不觉也已经三年了, 从不知java为何物到现在一个小小的j2ee项目经理,虽说不上此道高手,大概也算有点斤两了吧。每次上网,泡bbs逛论坛,没少去...
  • u012402926
  • u012402926
  • 2016年05月04日 17:54
  • 134

[原]Java思想之容器implements与接口interface

http://homeway.me/ 0x01.About查了一些国内资料,都说java中extended与implements的区别是,一个类只能有一个继承,一个类可以有多个容器。后来去看了...
  • u012992688
  • u012992688
  • 2015年04月15日 00:35
  • 1948

浅谈一下JAVA中的接口interface

第一次写博客,怎么说呢?一丝激动,一丝焦虑.激动的是自己终于算是走上IT这条路上的一条小径上了,焦虑的是自己该如何走好这条路.可回过头来仔细想想,还是要认真走好每一步,眼下最重要的还是如何写好这篇博客...
  • soul_pangzi_
  • soul_pangzi_
  • 2015年11月12日 13:02
  • 46

Java 接口(interface)基本定义

接口是我们开发java项目,必须用到的方法,而接口是一种完全抽象的设计,没有任何实现。接口的特征:1.所有的成员变量都是public、static、final类型。 2.所有的方法都是public、...
  • Google_huchun
  • Google_huchun
  • 2016年09月17日 13:46
  • 870

java为什么要用abstract与Interface?

八.抽象类 有些类的实例不存在,但他代表一类不同对象的集合。如Animal类,没有动物叫Animal,但Animal尤其子类Dog,Cat等等。 抽象除了被继承外,没有值和用途 抽象的方法:抽象...
  • neverlesspray
  • neverlesspray
  • 2016年08月01日 13:59
  • 697

Java里的接口的interface 简单介绍.

这是写给我自己和我这种初学者看的. Java作为1个强面向对象语言,  基本上所有东西(成员和方法)都是写在class(类)里面的. 但是也存在一种与class平行的东西, 它就是interfac...
  • nvd11
  • nvd11
  • 2014年02月07日 20:11
  • 8282

java利用@interface定义元注解及使用实例

项目中遇到一个日志记录功能,记录登录系统用户的行为日志(对订单进行验单,发货,退款等操作)。使用了拦截器及注解的形式,来完成日志记录。 参考网络资源,写一个简单的demo,对java元注解知识进行一...
  • hurtheart517
  • hurtheart517
  • 2017年03月20日 10:11
  • 874

Java 接口interface的详解

1.接口的概述 主要是使用接口来拓展定义类的功能,可以弥补java中单继承的缺点。 2.接口的定义格式 interface 接口名{ 属性 抽象方法 } 接口的体验 inte...
  • qq_33642117
  • qq_33642117
  • 2016年07月16日 21:50
  • 741

java泛型 之 入门(interface)

一:泛型简介: (1)所谓泛型,就是变量类型的参数化。 泛型是JDK1.5中一个最重要的特征。通过引入泛型,我们将获得编译时类型的安全和运行时更小的抛出ClassCastException的可能。在J...
  • u010700335
  • u010700335
  • 2014年10月08日 21:37
  • 1951
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:浅谈Java Interface
举报原因:
原因补充:

(最多只允许输入30个字)