加拿大大学本科申请:java中接口是个什么含义?

来源:百度文库 编辑:神马品牌网 时间:2024/04/28 11:24:23

你理解继承吗?大多现实程序都使用了所谓的"多重继承",但JAVA不支持多重继承,所以它引入了接口的概念,接口在JAVA中是为了支持运行时多态方法解决而设计的.通过提供interface这个关键字,JAVA就允许开发人员充分利用多态性的"一个接口,多个方法".也就是说,用interface你可以指定一个类必须做什么而不是规定它如何去做,一个类可以实现多个接口.

接口:它实际就是继承的范围,尽管一些书上没有这么讲,可它实际就是继承的一种。
定义:当我们编写的程序有两个或更多的类时,而这些类中又有一些共同的方法,当然我们可以在每个类中编写,但是这样显得复杂。有简单的方法你会不会去试一下呢?当然会了,于是这就是接口的好处了,我们可以写一个接口,这个接口包含这些黄同的方法。然后分别用类来实现它,于是就继承了这些方法,
含义:那接口怎么用呢,有什么好处?实事上你懂得抽像类的话,接口使抽像类更具确切的含义。我们用implements实现它,你必需注意:实现接口必需实现接口中的所有方法,不是会错。我这有一个很好的例子,贴上去也给你看看:

import java.util.*;
interface Shape{
void draw(){}
void erase(){}
}
class Circle implement Shape{
void draw(){
System.out.println("Circle.draw()");
}
void erase(){
System.out.println("Circle.erase");
}
}
class Square implement Shape{
void draw(){
System.out.println("Square.draw()");
}
void erase(){
System.out.println("Square.erase()");
}
}
class Triangle eimplement Shape{
void draw(){
System.out.println("Triangle.draw()");
}
void erase(){
System.out.println("Triangle.erase()");
}
}

class RandomShapeGenerator{
private Random rand=new Random();

public Shape next(){
switch(rand.nextInt(3)){
default:
case 0:return new Circle();
case 1:return new Square();
case 2:return new Triangle();

}
}

}
public class Shapes{
private static RandomShapeGenerator gen=
new RandomShapeGenerator();

public static void main(String[] args){
Shape[] s=new Shape[9];
for(int i=0;i<s.length;i++)
s[i]=gen.next();//

for(int i=0;i<s.length;i++)
s[i].draw();

}
}

接口和抽象类差不多

可以说抽象类是接口的一个特例

包含空方法的类最好声明为抽象类
有些情况下是不能用抽象类的,因为java只支持单一继承,也就是一个子类只能继承一个父类,然有时你需要继承很多个类的时候,就只能使用接口.因为接口的实现是没有个数限制的,一个类可以同时实现很多个接口
这也是为什么java api里都是接口,总不能每次只继承一个类吧.