备案的网站建设书是什么意思网络营销app有哪些
目录
- 一、什么是接口
- 二、接口的特点
- 三、接口和类的区别
- 四、接口和抽象类的区别
- 五、接口的声明方式
- 六、default默认方法
大家好,我是哪吒。
一、什么是接口
Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。
Java中有一个Comparable接口,只包含一个compareTo方法,public int compareTo(T o);,只有方法定义,没有具体的方法实现,接受一个Object参数,返回一个整数。
通过implements关键字去实现Comparable接口,并对compareTo方法进行重写,已实现自己的业务逻辑。
public class Test implements Comparable{@Overridepublic int compareTo(Object o) {return 0;}
}
二、接口的特点
- 接口中的每个方法都是隐式抽象的,接口中的方法会被隐式的指定为public abstract,接口中不用声明public;
- 接口中可以含有变量,但是接口中的变量会被隐式的指定为public static final变量;
- 接口中的方法是不能在接口中实现的,只能由实现接口的类来实现接口中的方法;
三、接口和类的区别
- 接口不能实例化
- 接口没有构造方法
- 接口中所有的方法必须是抽象方法,java8之后可以使用default关键字修饰非抽象方法
- 接口不能包含成员变量,除了static和final变量
- 接口支持多实现
四、接口和抽象类的区别
- 抽象类中的方法可以有方法体,就是能实现方法的具体功能,但是接口中的方法不能有方法体
- 抽象类中的成员变量可以使各种类型的,而接口中的成员变量只能是public static final类型的。
- 接口中不能含有静态代码块以及静态方法,而抽象类中可以有静态代码块和静态方法。
- 一个类只能继承一个抽象类,而一个类可以实现多个接口。
五、接口的声明方式
public interface UserService {void study();void sleep();
}
public interface StudentService {void play();
}
public class StudentServiceImpl implements StudentService,UserService{@Overridepublic void play() {}@Overridepublic void study() {}@Overridepublic void sleep() {}
}
六、default默认方法
通过default关键字修饰的方法就是默认方法。
如果接口中有很多方法,实现它的类就需要重写接口中的所有方法,不管是否需要用到。如果接口中的某个方法被default关键字修饰了,那么具体的实现类中可以不用实现方法。
public interface Person {void study();default void say() {System.out.println("Person say");}
}
public class Student implements Person {@Overridepublic void study() {System.out.println("Student study");}
}
如果Student需要实现两个类,这两个接口中都有用default修饰的say方法,那么student类必须重写say方法了,否则就会报错。
🏆本文收录于,49天精通Java从入门到就业。
全网最细Java零基础手把手入门教程,系列课程包括:基础篇、集合篇、Java8新特性、多线程、代码实战,持续更新中(每周1-2篇),适合零基础和进阶提升的同学。
🏆哪吒多年工作总结:Java学习路线总结,搬砖工逆袭Java架构师。