java 接口

接口

Java中的接口是一个特殊的抽象类,接口中的所有方法都没有方法体。

比如,定义一个人类,人类可以为老师,可以为学生,所以人这个类就可以定义成抽象类。还可以定义几个抽象的方法,比如讲课,看书等,这样就行成了一个接口。

 

定义接口

语法格式如下:

[修饰符] interface 接口名 [extends 父接口名列表]{

     [public] [static] [final] 常量;

     [public] [abstract] 方法;

}

修饰符:可选,用于指定接口的访问权限,可选值为public。如果省略则使用默认的访问权限。

接口名:必选,用于指定接口的名称,接口名必须是合法的Java标识符。一般情况下,要求首字母大写。

extends 父接口名列表:可选参数,用于指定要定义的接口继承于哪个父接口。当使用extends关键字时,父接口名为必选参数。

方法:接口中的方法只有定义而没有被实现。

 

接口的继承

接口是可以被继承的。但是接口的继承与类的继承不太一样,接口可以实现多继承,也就是说接口可以有多个直接父接口。和类的继承相似,当子类继承父类接口时,子类会获得父类接口中定义的所有抽象方法、常量属性等。

 

接口的实现

接口可以被类实现也可以被其他接口继承。在类中实现接口可以使用关键字implements

语法格式为:

[修饰符] class <类名> [extends 父类名] [implements 接口列表]{

}

修饰符:可选,用于指定类的访问权限,可选值为publicfinalabstract

类名:必选,用于指定类的名称,类名必须是合法的Java标识符。一般情况下,要求首字母大写。

extends 父类名:可选参数,用于指定要定义的类继承于哪个父类。当使用extends关键字时,父类名为必选参数。

implements 接口列表:可选参数,用于指定该类实现哪些接口。当使用implements关键字时,接口列表为必选参数。当接口列表中存在多个接口名时,各个接口名之间使用逗号分隔。

 

 接口与抽象类

接口与抽象类的共同点如下:

1)接口与抽象类都不能被实例化,能被其他类实现和继承

2)接口和抽象类中都可以包含抽象方法,实现接口或继承抽象类的普通子类都必须实现这些抽象方法。

接口与抽象类的用法差别如下:

1接口中只能包含抽象方法,不能包含普通方法;抽象类中可以包含普通方法。

2)接口中不能定义静态方法;抽象类中可以定义静态方法。

3)接口中只能定义静态常量属性,不能定义普通属性;抽象类里可以定义静态常量属性,也可以定义普通属性。

4)接口不能包含构造器;抽象类可以包含构造器,抽象类里的构造器为了让其子类调用并完成初始化操作。

5)接口中不能包含初始化块,但抽象类可以包含初始化块。                       

6一个类最多只能有一个直接父类,包括抽象类;但是一个类可以实现多个接口

 

接口的UML

顶部第1层是名字层,接口的名字必须是斜体字形,而且需要用<<interface>>修饰,并且该修饰和名字分布在两行。

中部第2层是常量层,列出接口中的常量及类型,格式是“常量名字:类型”。

底部第3层是方法层,也称操作层,列出接口中的方法及返回类型,格式是“方法名字(参数列表):类型”。

 

实现接口的UML

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值