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