学习时间:
时间:早上8点到晚上10点。
学习产出:
掌握20道案例及课上理论知识
- 思维导图总结
- 技术类书籍30页
- 代码20个。
接口的概述(理解)
接口是 是一个抽象类型 ,是抽象方法的集合 , 通常以interface来声明
Java中接口存在的两个意义
-
用来制定代码规范
-
方便功能的拓展和维护
接口语法(掌握)
1.接口用关键字interface修饰
public interface 接口名 {}
2.类实现接口用implements表示
public class 类名 implements 接口名 {}
3.接口不能实例化
我们可以创建接口的实现类的对象使用
4.接口的子类
-
要么重写接口中的所有抽象方法
-
要么子类也是抽象类(一般在层级结构比较多的框架中会遇到)
public interface IFunc {
//写一个抽象方法
public abstract void eat()
void drink()
}
public class Person implements IFunc{
@Override
public void eat() {
}
@Override
public void drink() {
}
}
public class Demo01 {
public static void main(String[] args) {
//接口不能创建对象
//IFunc i1 = new IFunc();
//用接口的实现类 创建对象
Person p1 = new Person();
p1.eat();
}
}
接口的成员特点(记忆)
-
1 接口的成员变量只能是常量。(默认修饰符:public static final)
-
2 构造方法
-
没有构造方法,因为接口主要是扩展功能的,而没有具体存在
-
-
3 成员方法
-
只能是抽象方法
-
默认修饰符:public abstract
-
jdk8默认方法(用default)
接口可以用方法体,如果不加default默认的就是abstract了。
格式:public default 返回值类型 方法名(参数列表) { }
-
作用
-
解决接口功能升级的问题, 比如希望给所有的接口的实现类,添加一个同样实现体的方法.如果没有默认方法,就只能在实现类一个一个重复的写.
-
-
注意事项
-
1默认方法不是抽象方法,可以被继承,可以被重写,重写的时候去掉default关键字
-
2public可以省略,default不能省略
-
3如果实现了多个接口,多个接口中存在相同的方法声明,子类就必须对该方法进行重写
-
父接口存在同名的方法,实现类到底采用哪个方法?父类.
-
-
一个类可以实现多个接口(多个接口逗号分开)
-
多个实现的接口中有相同的抽象方法,实现类只实现一次就可以了
-
多个实现的接口中有相同的默认方法,实现类 必须重写这个默认方法,否则报错
注释:这是因为接口的默认方法有方法体。
接口的静态方法:只能通过接口名调用。
-
语法和类里一样 public static void 方法名() {} public可以省略
-
静态方法只能通过接口名调用,不能通过实现类名或者对象名调用