接口知识总结-创新互联
Java提供了一个关键字interface,用这个关键字我们可以定义出一个特殊的结构:接口。
成都创新互联公司是一家专业从事网站设计、做网站的网络公司。作为专业网络公司,成都创新互联公司依托的技术实力、以及多年的网站运营经验,为您提供专业的成都网站建设、全网整合营销推广及网站设计开发服务!Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为或者是功能。接口也是一种规范。
1.2 接口的定义JDK8之前接口中只能有常量和抽象方法,后面会展示出之后的方法。
1.3 接口的特点- 在 java 中接口采用 interface 声明
- 接口中的方法默认都是 public abstract 的,不能更改(JDK8之前)
- 接口中的变量默认都是 public static final 类型的,不能更改,所以必须显示的 初始化
- 接口不能被实例化,接口中没有构造方法
- 一个接口可以同时继承多个接口
- 一类可以实现多个接口
- 一个类实现接口,必须重写完全部接口的全部抽象方法,否则这个类需要定义成抽象类。
- 接口中的方法只能通过类来实现,通过 implements 关键字
- 接口
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(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元起,快前往官网查看详情吧
新闻标题:接口知识总结-创新互联
地址分享:http://scjbc.cn/article/igeej.html