接口(Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合
一. 什么是接口:
接口就是某个事物对外提供的一些功能的声明
- 接口关键字interface
- 接口中的所有方法都是用public abstract修饰的
- 接口不能实例化(接口就是一个特殊的抽象的方法)
- 接口中的常量都是静态常量
public static final String SEX_FWMAL="女";
public static final String SEX_MALE="男";
- 实现类必须实现接口的所有方法 实现类关键字implements
二.为什么需要接口:
是一种特殊的java类,接口弥补了java单继承的缺点
2.1 接口的特点:
接口中声明全是public static final修饰的常量
接口中所有方法都是抽象方法
接口是没有构造方法的
接口也不能直接实例化
接口可以多继承
2.2 接口和抽象类技术对比:
01.抽象类中可以有普通方法,接口中不能
02.抽象类可以有构造,接口不能
03.抽象类中可以有普通字段,而接口中不行
04.抽象类不能实现多继承,接口可以
二、接口的使用
由于接口里面存在抽象方法,所以接口对象不能直接使用关键字new进行实例化。接口的使用原则如下:
1.接口不能被实例化,接口是比抽象类抽象程度更高的类型。
2.一个接口最好只定义一个方法,防止接口污染
3.接口不能有构造,抽象类可以有构造
4.接口是一种数据类型
5.接口可以多继承
6.接口中所有的字段都必须是公有的静态常量
7.接口所有方法都是公有的抽象方法
8.一个类实现某个接口的话,必须重写他的所有的抽象方法。
9.接口只是为实现它的类定义了规范,保证实现类的方法签名和接口中方法一致
10接口必须要有子类,但此时一个子类可以使用implements关键字实现多个接口;
三 示例
1.情景:
实际开发中,为了更好地控制和管理项目,项目经理往往会定义一些接口,具体的实现细节由各位程序🐒实现。🐒儿这时就会根据需求,编写不同的类去实现项目👴给的接口。如下图所示 :
2.演示代码
package csdn;
/*
*
* 锁,接口
* */
public interface Door {
void lockUp();
void openLock();
}
package csdn;
/*
* 门
* */
public abstract class Lock {
public abstract void open();//开
public abstract void close(); //关
}
package csdn;
/*
* 防盗门类
* */
public class TheftproofDoor extends Lock implements Door {
@Override
public void lockUp() {
System.out.println("插进钥匙,向左旋转钥匙三圈,锁上了,拔出钥匙");
}
@Override
public void openLock() {
System.out.println("插进钥匙,向右旋转三圈,锁开了,拨出钥匙");
}
@Override
public void open() {
System.out.println("用力推,门开了");
}
@Override
public void close() {
System.out.println("轻轻拉门,门关上了");
}
}
package csdn;
/*
* 测试类
* */
public class LockTest {
public static void main(String[] args) {
//创建具体防盗对象
TheftproofDoor st=new TheftproofDoor();
st.close(); //关门
st.lockUp(); //上锁
st.openLock(); //开锁
st.open(); //开门
}
}