标签:范围 默认方法 运算符 数据 初始化 显示 关键字 修饰符 ati
1.接口本身具有数据成员、抽象方法、默认方法、和静态方法,但它与抽象类不同
1)接口的数据成员都是静态的且必须初始化,即数据成员必须是静态常量
2)接口中除咯声明抽象方法外,还可以定义静态方法 和默认方法
2.接口定义格式:
[public] interface 接口名称 [extends 父接口列表]
{[public][static] 数据类型 常量名 = 常量
[public] [abstract] 返回值的数据类型 方法名(参数表)
[public] static 返回值的数据类型 方法名(参数表)
{
方法体
}
[public] default 返回值的数据类型 方法名(参数表)
{
方法体}}
3.注意:1)接口中的“抽象方法”只需要声明,不用定义其处理数据的方法体
2)数据成员必须是静态的且是赋初值的,即数据成员必须是静态常量
3)接口中的成员都是公共的,在定义接口时,若省略了public修饰符,在实现抽象方法时,则不能省略该修饰符
4.既然接口中有抽象方法,而抽象方法只需要声明而不用来定义方法体,所以接口与抽象类不能用new运算符创建对象
5.相反的,必须利用接口的特性创建一个新的类,然后再用它类创建对象
利用接口创建新类的过程称为接口的实现
6.接口实现的语言格式:
class 类名称 implements 接口名表
{
}
7.一个类实现一个接口时,注意问题:
1)如果实现某接口的类不是abstract的抽象类,则在类的定一部分必须指定接口的所有抽象方法,
即非抽象类中不能有抽象方法
2)一个类在实现某接口的抽象方法时,必须使用完全相同的方法头,否则只是在定义一个新方法,
而不是实现已有的抽象方法
3)接口中抽象方法的访问控制修饰符都已被指定为public,所以类在实现方法时,必须显示地使用
public修饰符,否则被系统警告为缩小接口中定义的方法的访问控制范围
4)与类一样,每个接口都被编译成独立的扩展名为.class的字节码文件
可以声明接口类型的变量或数组,并用它来访问实现该接口的类的对象
8.与类相似,接口也有继承性。定义一个接口时可通过extends关键字声明该新街口是某个已存在的
接口的子接口,它将继承父接口的常量,抽象方法和默认方法。
与类继承不同的是,一个接口可以有一个以上的父接口,它们之间用逗号分隔,形成父接口列表
新接口将继承所有父接口中的常量、抽象方法、默认方法,但不能继承父接口中的静态方法,也不能被
实现类继承
总结:今天天接触了接口,感觉比之前的复杂,是前面的综合,涉及到静态,构造方法,抽象方法以及继承
接口中的数据成员必须是静态且初始化,接口中除咯声明抽象方法外,还可以定义静态方法和默认方法
标签:范围 默认方法 运算符 数据 初始化 显示 关键字 修饰符 ati
原文地址:https://www.cnblogs.com/kzf-99/p/14687492.html