接口(interface)

                          接口(interface)

接口,其实也就是标准。

为什么要有接口呢?因为java的类只能单继承(不能继承自多个类),因此就有了接口

代码
public interface Sport {
void run();
void jump();
}

class Athlete implements Sport {
public void run() {
System.out.println(
"长跑");
}

public void jump() {
System.out.println(
"跳高");
}
}

class Test {
public static void main(String[] args) {
Athlete zhangsan
= new Athlete();
zhangsan.run();
zhangsan.jump();
}
}

 

使用interface定义接口,使用implements实现接口。

接口中所有的方法都是抽象的,并且都是public abstract,只是可以不显示写出,然而抽象类中却必须显示地将public abstract写出。在它的子类中如果要实现这些抽象方法,那么访问权限同样不能低于public。

 

在接口中声明方法时,不能使用native、static、final、synchronized、private、protected等修饰符。(也就是只有public abstract)

和public类一样,public接口也必须定义在与接口同名的文件中。

接口中可以有数据成员,这些成员默认都是public static final。也就是说接口中的数据成员的值不能被修改的,都是静态常量。

代码
interface Math {
double PI = 3.1415926;
// 相当于 public static final double PI = 3.1415926;
}

class Arithmetic implements Math {
double roundArea(double radius) {
return PI*radius*radius;
}
}

class Student {
public static void main(String[] args) {
Arithmetic a
= new Arithmetic();
System.out.println(a.roundArea(
3));
System.out.println(Math.PI);
System.out.println(Arithmetic.PI);
// Arithmetic实现了Math
System.out.println(a.PI);
}
}
一个接口可以继承自另一个接口。

Java中不允许类的多继承,但允许接口的多继承。

接口可以多继承,而类不可以。

interface Sittable {
void sit();
}

interface Lie {
void lie();
}

interface Chair extends Sittable {
}

interface Sofa extends Sittable,Lie {// 接口的多继承
}

在java中一个类可以实现多个接口。

一个类在继承另外一个类的同时,可以实现多个接口。

代码
interface Sittable {
void sit();
}

interface Lie {
void lie();
}

interface HealthCare {
void massage();
}

class Chair implements Sittable {
public void sit(){
}
}

class Sofa extends Chair implements Sittable,Lie {// 一定要先继承,再实现。
public void lie() {
}

public void massage(){
}
}

 

实现接口也要实现接口中的全部方法,否则这个类也应该声明为抽象类。

posted @ 2010-12-21 13:15  meng72ndsc  阅读(374)  评论(0编辑  收藏  举报