Java中的接口

JAVA中的接口

1.接口的定义方法
使用关键字interface定义接口
抽象类中的抽象方法不能省略abstract关键字,但是接口中的方法声明可以添加abstract,也可以不写。
接口不能直接使用,必须有对应的实现类。
接口通过定义变量,使用具体类的实例,进行调用。
引入接口的目的在于隔离实现。
使用接口,可以实现在实现接口的多个具体实现类之间进行更换

2.什么是接口
在java中不直接支持多继承,因会出现调用的不确定性,所以java将多继承机制进行改良,在java中变成了多实现,一个类可以实现多个接口,一个借口可以继承多个接口。
(1)没有构造器方法,不能定义静态或者非静态代码块。
(2)没有属性只能定义常量。
(3)可以包含抽象方法,也可以没有抽象方法。
(4)接口允许多重继承也允许一个类实现多个接口。
(5)可以使用default关键字给抽象方法提供默认实现,有默认实现的方法在实现类中可以重新定义,也可以不重新定义。
(6)允许一个类实现多个接口,但是每个接口的头像方法都必须提供实现,否则是抽闲类。提供的实现也可以是继承。
(7)接口的出现避免了单继承的局限性。

3.声明接口的语法
访问修饰符 interface 接口名{}
(1)如果是public接口,则规则和定义public类一致,要求接口名称,文件名称一致
(2)外部的接口只能使用public、默认这两个范围限定词;如果定义内部接口,则可以使用4大范围限定词。
(3)接口实际上提供了统一的操作界面,JDK1.8以后的版本允许使用default在接口中定义默认实现,这个实现类中重新定义覆盖
(4)接口中没有属性,只能定义常量,它提供一些常量,实现它的类可以共享这些常量。
(5)接口可以给出访问控制符,用public修饰是公共接口,到处可见;如果定义接口没有范围限定词,则只能在同包中访问。

4.接口的特殊特征
一个类只能有一个父类,一个类可以实现多个接口,一个接口可以继承多个接口。

5.接口和抽象类的异同
(1)相同点:都是不断向上抽取而来的。
(2)不同点:a.抽象类需要被继承,而且只能单继承;
b.接口需要被实现,而且可以多实现。
(3)抽象类中可以定义抽象犯非法和非抽象方法,子类继承后可以直接使用非抽象方法。
(4)接口只能定义抽象方法,必须由子类去实现,JDK1.8后允许接口中的方法由默认实现,实现类中可以直接使用默认实现,允许覆盖定义。
(5)抽象类的继承是is a 关系,在定义该体系的基本共性内容
(6)接口的实现是like a关系,在定义体系额外功能。
(7)接口中只能定义常量,而且必须被初始化,抽象类中可以定义属性,允许在声明时直接初始化,也可以不初始化,同时允许定义常量。

public class Test1(){
public static void main(string[] args){
IA2.pp();
A2.pp();

IA2 a2 = nre A2();
a2.pp();//此处语法会报错
}
}

interface IA2{
public static void pp(){
System.out.println("This is IA2");
}
}

class A2 implement IA2{
public static void pp(){
System.out.println("This is A2");
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值