Java提供了一个关键字interface,用这个关键字我们可以定义出一个特殊的结构:接口。
成都创新互联公司是一家专业从事网站设计、做网站的网络公司。作为专业网络公司,成都创新互联公司依托的技术实力、以及多年的网站运营经验,为您提供专业的成都网站建设、全网整合营销推广及网站设计开发服务!Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为或者是功能。接口也是一种规范。
1.2 接口的定义JDK8之前接口中只能有常量和抽象方法,后面会展示出之后的方法。
1.3 接口的特点[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rhvuwoxg-1671763906176)(D:\java\黑马se笔记\笔记图片\接口1)]
测试类
一个接口可以继承多个接口。
修饰符 interface 子接口名 extends 接口1, 接口2, 接口3 , ... {}
举例:
接口1
public interface Flyable {void fly();
}
接口2
public interface Runnable {//JDK8之前的接口中只能定义常量和抽象方法,不能定义其他成分
//public static final String NAME="动物名";
String NAME="动物名";
//public abstract void run();
void run();
}
子接口
public interface JiaQin extends Runnable,Flyable{
}
实现类
public class Chicken implements JiaQin{
@Override
public void run() {
System.out.println("鸡是两条腿的,也跑不快");
}
@Override
public void fly() {
System.out.println("鸡是可以飞一下的,但是不高");
}
}
**注意:**实现子接口名的类必须实现后面所有接口中的所有抽象方法。
接口多继承的作用
规范合并,整合多个接口为同一个接口,便于子类实现。
1.6 继承抽象类的同时实现多个接口实现1个或多个接口的,语法如下:
修饰符 class 实现类 extends 基类名 implements 接口1, 接口2, 接口3 , ... {}
**注意:**1、这里的基类可以是抽象类,也可以是非抽象类;这里重点学习继承抽象类。
2、如果继承自抽象类,那么实现类要重写完抽象类和所有接口中的所有抽象方法,否则实现类也必须声明 为抽象类。
这样的好处:
JDK8版本开始后,Java对接口的成员方法进行了新增。(允许接口中直接定义带有方法体的方法)
第一种:默认方法
类似之前写的普通实例方法:必须 用default修饰。
默认会public修饰。需要接口的实现类的对象来调用。
第二种:静态方法
默认会public修饰,必须static修饰。
注意:接口的静态方法必须用本身的接口名来调用。
第三种:私有方法
必须使用private修饰,从JDK 1.9才开始有的。
根据是否有static关键字修饰,私有方法可以分为非静态私有方法和静态私有方法。
非静态私有方法只能在本类中被其他的默认方法或者私有方法访问。
静态私有方法还能在本类的其他静态方法中访问。
注意:JDK8新增的3种方法我们自己在开发中很少使用,通常是ava源码涉及到的,我们需要理解、识别语法、明白调用关系即可。
案例:
public interface Inter {//1、默认方法 必须有default修饰,默认有public修饰
default void defaultMethod(){System.out.println("默认方法执行了");
privateMethod();
privateMethod2();
}
//2、静态方法
//必须有static修饰,默认有public修饰
static void staticMethod(){System.out.println("静态方法执行了");
privateMethod2();
}
//3、私有方法,从JDK9开始的
//非静态私有方法
//必须有private修饰
//用接口中的默认方法调用
private void privateMethod(){System.out.println("私有方法执行了");
}
//静态私有方法
//可以用接口中的默认方法和静态方法调用
private static void privateMethod2(){System.out.println("静态私有方法执行了");
}
}
1、接口不能创建对象
2、一个类实现多个接口,多个接口的规范不能冲突
3、一个类实现多个接口,多个接口中有同样的静态方法不冲突。(因为静态方法属于各自的接口)
4、一个类继承了父类,同时又实现了接口,父类中和接口中有同名方法,默认用父类的。
5、一个类实现了多个接口,多个接口中存在同名的默认方法,可以不冲突,这个类重写该方法即可。
8 接口的一些注意事项
1、接口不能创建对象
2、一个类实现多个接口,多个接口的规范不能冲突
3、一个类实现多个接口,多个接口中有同样的静态方法不冲突。(因为静态方法属于各自的接口)
4、一个类继承了父类,同时又实现了接口,父类中和接口中有同名方法,默认用父类的。
5、一个类实现了多个接口,多个接口中存在同名的默认方法,可以不冲突,这个类重写该方法即可。
6、一个接口继承多个接口,是没有问题的,如果多个接口中存在规范冲突则不能多继承。
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
售后响应及时
7×24小时客服热线数据备份
更安全、更高效、更稳定价格公道精准
项目经理精准报价不弄虚作假合作无风险
重合同讲信誉,无效全额退款