1.接口
1)含义
接口是抽象的,接口中只有方法的特征而没有方法的实现,接口中的变量都是常量。
2)格式
定义一个接口
3)关键字 interface
2.如何实现接口
类实现接口
3.接口与继承的区别
1. 一个类只能继承一个类,即单继承。但是一个类可以实现多个接口。
2. 接口中方法都是抽象的(Java 8 之后 接口中可以使用 default 关键字修饰的非抽象方法),变量是常量。在类中方法是具体的,变量就是变量。
3. 接口不能实例化,只能通过一个类来实现。
4. 接口中无构造方法。
4.分析门锁的代码
第一步:定义接口
2.定义一个门类
在类中定义了一个接口变量,我认为这样做的好处是 提高了代码的复用率,使开发更加高效,我们可以认为这个类就是最原生的一个类,如果你对这个门的锁有新的需求的话,那么我不需要重新修改这个类,或者重建定义一个类,只需要通过其它类实现锁的接口。
我认为:接口所代表的行为应该是属于这个类的,就是说它描述了一个行为,但是很抽象的,谁有需求就去实现接口就好了。
接口的实现使得“门”更加具体!!
有一个门,就要配一把锁,至于你是什么锁,取决于你的需求。
实现一个具有人脸识别功能的锁
实现一个密码锁
主函数验证
4.扩展
我自己写了一个 学生与做作业的案例
小学生要写作业;大学生不一定要写,看心情写。。。。。
=============================================================
定义接口
public interface DoHomeWork {
public abstract void DoOrNotDo();
}
==============================================================
定义一个没有那么具体,有一点抽象的学生类
package interface_0429;
public class Student {
DoHomeWork d;
public void doOrnot() {
d.DoOrNotDo();
}
}
===============================================================
大学生的作业情况
class UNStudent_homework implements DoHomeWork {
@Override
public void DoOrNotDo() {
System.out.println("大学生可以不写,取决于自己");
}
}
==========================================================
小学生的作业情况
class LittleStudent_homework implements DoHomeWork {
@Override
public void DoOrNotDo() {
System.out.println("小学生一定要写,因为有家长管");
}
}
==================================================================
测试
class Manage{
public static void main(String[] args) {
Student student = new Student();
student.d = new UNStudent_homework(); // 由于这条语句,使student这个对象变得更加具体,他被赋予了 “大学生的作业完成情况 ” 的这一特征。
student.doOrnot();
//===========================
student.d = new LittleStudent_homework();
student.doOrnot();
}
}