第七章接口与实现.ppt
文本预览下载声明
第7章 接口与实现;7.1.1 接口的声明与使用
(1)接口声明
接口通过使用关键字interface 来声明
interface 接口的名字
(2)接口体
接口体中包含常量定义和方法定义两部分。接口体中只进行方法的声明,不许提供方法的实现,所以方法的定义没有方法体,且用分号结尾。;例:interface Runner{
public static final int id=1;
public void start( );
public void run( );
public void stop( );
}
;(3)接口的使用
一个类通过使用关键字implements 声明自己使用一个或多个接口。如果使用多个接口,用逗号隔开接口名。
如:class A implements Printable,Addable
class Dog extends Animal implements Eatable,Sleepable;7.2 实现接口; 如果接口的方法的返回类型不是void 的,那么在类中实现该接口方法时,方法体至少要有一个return 语句。如果是void 型,类体除了两个大括号外,也可以没有任何语句。 ;例:import java.applet.*;import java.awt.*;
interface Computable{
final int MAX=100;
void speak(String s);
int f(int x);
float g(float x,float y);
}
class China implements Computable{
int xuehao;
public int f(int x) { //不要忘记public关键字.
int sum=0;
for(int i=1;i=x;i++)
{ sum=sum+i; }
return sum;
}; public float g(float x,float y){
return 6; //至少有return语句.
}
public void speak(String s)
{ }
}
class Japan implements Computable{
int xuehao;
public int f(int x){
return 68;
}
public float g(float x,float y){
return x+y;
}; public void speak(String s)
{ }
public class Example4_26 extends Applet{
China Li;
Japan Henlu;
public void init(){
Li=new China(); Henlu=new Japan();
Li.xuehao=991898;
Henlu.xuehao=941448;
}; public void paint(Graphics g){
g.drawString(xuehao:+Li.MAX+Li.xuehao+从1到100 求和+Li.f(100),10,20);
g.drawString(xuehao:+Henlu.MAX+Henlu.xuehao+加法+Henlu.g(2.0f,3.0f),10,40);
}
}
注:如果一个类声明实现一个接口,但没有实现接口中的所有方法,那么这个类必须是 abstract 类。;
接口的语法规则很容易记住,但真正理解接口更重要。你可能注意到,在上述例子26 中如果去掉接口,并把程序中的Li.MAX,Henlu.MAX 去掉,上述程序的运行没有任何问题。那为什么要用接口呢?
; 假如轿车、卡车、
显示全部