当一个抽象类中的方法都是抽象方法的时候 ,这是可以将它定义和表示为接口
关键词interface
接口是 抽象类的特例
创建 接口类
package java01;
//接口是不能实例化的,只有子类覆盖接口的所有的抽象方法,才可以实例化。
public interface test {
public static int num = 1122;
// 只是声明,没有实现
abstract void show1();
abstract void show2();
}
接口实现类的代码如下:
package java01;
public class interfaceDemo implements test {
// 实现接口中的方法
@Override
public void show1() {
// TODO 自动生成的方法存根
}
// 实现接口中的方法
@Override
public void show2() {
// TODO 自动生成的方法存根
}
public static void main(String[] args) {
只有实现了接口类中的抽象方法, 才可以实例化。
interfaceDemo infd = new interfaceDemo();
System.out.println(test.num);
System.out.println(infd.num);
System.out.println(interfaceDemo.num);
infd.show1();
infd.show2();
}
}
总结:
接口类和抽象类的作用都是用来减少代码的重复性的。(都是向上抽取)
接口与类是实现的关系
抽象类与类之间是继承的关系。
接口我们可以把它理解成pc电脑的usb接口用来实现功能的扩展 的
而抽象类的作用是继承 某一特性,如从计算机的发展来看,计算一直是以二进制处理和存储数据的,这个特点是到现在都存在的,就是继承的特点。
接口的产生是为了, 继承出现的瓶颈,
一个类只能单继承,而接口可以多实现。
接口是可以多继承的,( 多继承是比如有 音乐,书法。等我们可以多个 实现它。)
而抽象类是单继承的。(单继承就是一个人只能有一个生父,不能 多继承的;这也是 继承的瓶颈)
接口中只能有抽象方法
而抽象类中可以有一般的方法和抽象方法。
那我们什么时候使用继承什么啥时候使用接口呢?
比如人
有 学生,工人,教师,拿学生来看
学生是一个类
抽象类可以是 “学习” 功能
而接口类就是学生的扩展 功能,如:“打架” ,“记笔记” 等
简单来说:抽象类就是这个对象的基本的功能 ,而接口类是你要 给他增加的 功能。