java学习第十四天

这里写图片描述

接口
接口概述:
接口就是全局常量和抽象方法的集合,在java里面使用interface关键字可以进行接口的定义。

接口的特点:
1.接口文件最后同样也会被编译器编译成 : 接口名.class的字节码文件;
2.接口中的所有方法都只能定义成抽象方法,不能拥有方法体,接口方法中可以不写public以及abstract修饰符,不写,编译器也会为我们自动添加public和abstract;
3.接口中的所有方法,访问修饰符默认就是public,即便不写也是public;
4.接口中不能拥有构造器,以及初始化块;
5.接口中不能定义成员变量,只能定义公开的且是静态的常量,在定义常量时,可以写成public static final 也可以写成 static final也可以写成final 甚至可以去掉final,但是数据类型必须有;
6.接口中可以定义无限个常量,可以定义无限的抽象方法(理论上);
7.接口在使用上来讲,不能被实例化,所有的抽象方法都必须由接口的实现类来实现。

接口的使用原则:
1.使用接口解决多继承
2.使用接口为外部类添加功能
3.以面向对象的角度考虑,将一个类与生俱来的特征和行为和依赖于外部的可选的特征和行为分离,让类尽可能的丰富。让我们在设计程序的时候,不在关注具体的类,而是分离关注类上拥有哪些接口所定义的能力,从而做到程序设计时,类与类的直接关系,变换为类 - 接口 - 类的关系,这种变换关系,也被称之为”解耦”。

接口的优点:
1.将设计和实现分离,对外(调用者)隐藏了实现(而通常调用者也不需要关系实现)
2.面向接口编程时oop的核心

接口和抽象类的区别:
接口
定义:用interface定义
使用:只能放抽象方法和静态常量;可以被类实现、被其它接口继承;不能实例化;接口可以多实现以及多继承;接口中放由外部附加给类的东西

抽象类
定义:用abstract定义
使用:可以放所有内容;只能被子类继承;不能实例化;抽象类只能单继承;抽象类里面放类与生俱来的行为

Jdk1.8之后接口出现的新的特性
接口中可以添加非抽象方法,但是需要default关键字来声明非抽象方法,但此时的default已经不再是一个访问访问修饰符,而真正的访问修饰符,依旧还是public;
接口中可以使用static声明静态方法,但是必须要有方法体的实现(“{}”)

猜你喜欢

转载自blog.csdn.net/qq_43046901/article/details/82668238