posts - 0,  comments - 0,  trackbacks - 0

接口其实是一种定义方法的标准。多个项目开发起来,如果串型开发的话函数越多无法管理,并行开发的话没有一个标准也不好分配任务,于是,接口的概念完全解决了这个问题,可能现在很多书上的例子仅仅把接口当做解决做继承的问题(因为 JAVA 没有多继承),但其理解起来有点无法接受,但他的作用远远不是解决多继承的。

如果你读过我在我的 blog 里写的 abstract 方法总结的话,获取会对接口会接受的更快些。因为他们之间有一定的联系,同是抽象出一个方法(接口是抽象一个标准方法),让继承 / 使用的类去定义这种方法。不同的是,如果使用接口的方法,就必须在使用接口的类中全部把他定义出来,因为类使用了一个标准,就必须遵守这个标准。

还是介绍一下接口,接口是用 interface 来定义的,和类一样,可以有成员,有方法,不过,它的方法不能被定义。缺省的修饰符是 public abstract , 接口可以向类一样继承,例如

interface f1{

         void deMethod();  // public and abstract;

         public abstract void deMethod1(); // public and abstract

}

interface f2 extends f1{

         void deMethod2();

}

继承后接口 f2 就含有 3 个标准

void deMethod();

void deMethod1();

void deMethod2();

 

使用接口的时候用 implements . 使用了接口的类,不得将定义的方法访问控制低于接口的访问控制,接口的方法不能为 native,static,final,synchronized,priavte,protected. 所以使用接口的类一般控制访问应该设为 public.

 

可能你还不了解 “标准”。下面我将以一个简单的例子来做解答

 

电脑里的有显卡,主板,显示器, CPU 等,为什么他们可以由几个不同的厂商生产呢?其实就是因为在他们生产之间准备一种标准,让彼此只要遵守这个标准就 OK 拉,显示器厂商不会去关心 CPU 是什么型号,他只管接收显卡发射的图像并让自己显示出来就可以了,显卡同样不会去关心主板是谁生产的,它只遵守把能插在主板上并把用户的图像显示出去就可以了,于是大家干活起来越来越轻松,这就是标准带来的好处。

我们来定义一个显卡,一个主板。你将可以看到接口使用的好处

 

interface Video{        // 定义一个简单的显卡标准,主要负责显示和获得显卡厂家名字

         void display();

         String getName();

}

 

class VideoCard implements Video{   // 使用这个标准来定义

         private String name;

         public void display(){

                   System.out.println("VideoCard Working....");

         }

        

         public String getName(){

                   return name;

         }

        

         public void setName(String name){

                   this.name = name;

         }

}

 

class MainBoard{

         Video v;// 主板组合一个显卡标准

         void setVideoCard(Video v){

                   this.v = v;

         }

         void run(){     // 主板运行

                   v.display();// 由于显卡标准规定,主板调用显卡标准的输出方法

                   System.out.println("VideoCard is " + v.getName());// 由于显卡标准规定,主板调用显卡获取名字方法

 

                   System.out.println("mainBoard Working...");

         }

}

 

public class Computer{ // 配置一台电脑

         public static void main(String [] args){

                   VideoCard v = new VideoCard();  // 买一块显卡

                   v.setName(" 创新显卡 ");

                   MainBoard m = new MainBoard();

                   m.setVideoCard(v);// 装到主板上

                   m.run();

         }

}

 

这么一来。接口的作用得到充分利用。

posted on 2006-06-23 18:36 Tiwen 阅读(121) 评论(0)  编辑  收藏 所属分类: JAVA

只有注册用户登录后才能发表评论。


网站导航:
 

<2025年7月>
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789

留言簿

文章分类

文章档案

搜索

  •  

最新评论