您的位置:首页 > 其它

接口(interface)

2015-10-18 22:56 120 查看
前一篇中介绍了abstract关键字,该关键字允许在类中创建一个或多个只有声明而没有定义的方法,这些方法由类的继承者实现。

interface关键字产生一个完全抽象的类,其中没有任何具体的实现。

interface是一个极度抽象的类,它允许通过implements关键字创建一个能够被向上转型为多种基类型的类,从而实现多继承变种的特性。

interface的访问权限

interface的访问权限有public和包访问权限(默认)两种。

接口中的方法是public的(不管你是否显式的进行了声明),所以在类中实现接口的方法时必须定义为public;否则它只能得到缺省的包访问权限,这样在方法被继承的过程中,其可访问权限就被降低了(这是Java编译器不允许的)。

interface实现多态

向上转型可以将一个类与其继承的基类(普通类、抽象类)和接口连接起来,剩下的与只要操作基类或接口就可以实现多态。

注意:在组合不同的接口中使用相同的方法名通常会造成代码可读性的混乱,请尽量避免这种情况。

扩展接口

博客开头说过interface是一个极度抽象的类,所以我们可以通过继承来扩展接口。

群组常量

由于放入接口中的字段都自动是static和final的,所以接口成为了一种很便捷的用于创建常量组的工具。

final数据初始化

在接口中定义的字段自动是static和final的,它们不能是“空白final”,但可以被非常量表达式初始化。

嵌套接口

接口可以嵌套在类或其他接口中。

当实现某个接口时,并不需要实现嵌套在其内部的任何接口。

在类中嵌套接口

在类中嵌套的接口可以像非嵌套接口一样,拥public和“包访问权”两种权限。

public和“包访问”的嵌套接口都可以被实现为public、包访问以及private的嵌套类。

private接口

在类中嵌套的接口也可以被实现为private。private接口可以被实现为public内部类也可以被实现为private内部类,但这两个实现的内部类都只能被自身类使用。

private接口不能在定义它的类之外被实现

接口之间嵌套

嵌套在另一个接口中的接口自动是自动就是public的,而不能声明为private的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: