java展开笔记,unicorn的java课堂笔记(7)

第七节课

接 口

接口在java中尤其是面向对象语言中是一个很重要的概念.

java中使用接口概念的原因:java不支持多继承性,即一个类只能有一个父类.单继承性使得java简单,易于管理程序.为了克服单继

承的缺点,java使用了接口.

一个类可以实现多个接口.使用关键字interface来定义一个接口.接口的定义和类的定义很相似,分为接口的声明和接口体.

1.接口声明及接口体

前面曾使用class关键字来声明类,接口通过使用关键字interface来声明.格式

interface 接口的名字

接口体中包含常量的定义和方法定义两部分.接口体中只进行方法的声明,不允许提供方法的实现,所以,方法的定义没有方法体,且

用";"结尾.如

程序代码:

interface Printable

{

final int max=100;

void add();

float sum(float x,float y);

}

2.接口的使用一个类通过使用关键字implements声明自己使用一个或多个接口.如果使用多个接口,用逗号隔开接口名.如:

class A implements Printable,Addable

类A使用接口Printable 和接口Addable

子类使用接口格式也一样,如:

class B extends A implements Printable,Addable

子类B使用接口Printable 和接口Addable

如果一个类使用了某个接口,那么这个类必须实现该接口的所有方法,即为这些方法提供方法体.需要注意的是:在类中实现接口的

方法时,方法的名字,返回值类型,参数个数及类型,必须与接口中的完全一致.特别要注意的是:接口中的方法默认是public

abstract方法,所以类在实现接口方法时必须给出方法体,并且一定要用public来修饰,而且接口中的常量默认是public static常

量.

由于接口体中只有常量定义和public的abstract方法定义,程序在编写接口时,允许省略常量前面的public,final和static修饰,也

允许省略方法前的public和abstract修饰.另外,如果接口方法的返回类型不是void型,那么在类中实现接口方法时,方法体至少要

有一个return语句;如果是void型,类体除了两个大括号外,也可以没有任何语句.

java提供的接口都在相应的包中,通过引入包可以使用java提供的接口.也可以自己定义接口,一个java源文件就是由类和接口组成的.

虽然"使用接口"的描述的很罗嗦,看看下面的例子就容易掌握了

程序代码:

interface Computable//定义接口

{  int MAX=100;

int f(int x);//声明方法(是public abstrac型的,只是省略了关键字)

}

class China implements Computable

{  int number;

public  int f(int x) //不要忘记public关键字

{  int sum=0;

for(int i=1;i<=x;i++)

{ sum=sum+i;

}

return sum;

}

}

class Japan implements Computable

{  int number;

public int f(int x)//不要忘记public关键字

{  return 44+x;

}

}

public class E

{  public static void main(String args[])

{  China zhang;

Japan henlu;

zhang=new China();

henlu=new Japan();

zhang.number=991898+Computable.MAX;

henlu.number=941448+Computable.MAX;

System.out.println("number:"+zhang.number+"求和"+zhang.f(100));

System.out.println("number:"+henlu.number+"求和"+henlu.f(100));

}

}

还要注意的就是如果一个类声明实现一个接口,但没有实现接口中的所有方法,那么这个类必须是abstract类,如

程序代码:

interface Computable

{final int max=100;

void speak(String s);

int f(int x);

abstract class A implements Computable//类A使用的接口但类体中并没有实现接口中speak()的

文章评论,共0条

游客请输入验证码

1217

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值