接口相当于一个合同,一个菜单,一个标准。简而言之就是定义了一种规范,下面介绍都以菜单为例。
接口属性
接口:Interface,在创建类的时候可以看见
接口中的数据属性也和class不同
1.接口中的数据是绝对的,不可修改的。
(如图,若没有直接赋值,接口就会报错)
2.接口中的方法都是抽象方法,由public static final修饰
static是静态的,唯一的。也就是在内存中仅有一份
final是最终的,不变的。也就是仅能在初始化时赋值,而后变成了一个常量
代码介绍
新建一个menu的接口,定义两个抽象方法,这里以做米饭和做面条为例。
public interface menu {
void doRice();
void doNoodles();
}
这里就相当于写了这个菜单的食品目录
再新建一个类(MakeFood),用于制作食物
这个类要连接上菜单这个接口,
接口还有个性质,只要是接口上有的方法,再类中都要实现一遍,这里及很像以前写的动作监听器一类的东西。
class kitchen implements menu {
@Override
public void doRice() {
}
@Override
public void doNoodles() {
}
}
class canteen implements menu {
@Override
public void doRice() {
@Override
public void doNoodles() {
}
}
这里用了两个内部类代表了两个制作的地点,厨房和餐厅,都承接了menu这个接口,并调用了其中的方法。
最后写一个主函数用于调用这两个方法,实现动作
class Main{
public static void main(String[] args) {
kitchen k = new kitchen();
k.doRice();
canteen c = new canteen();
c.doNoodles();
}
}
最终结果如下
总结
接口易一般用在后续升级不清楚的情况,可以先写一个接口,把已知的方法先写在上面,后续添加可以继续写在接口上,可扩展性高。
可实现一对多,同一个方法可以实现对多个类同时操作。
实现接口之后的类,这个接口相当于这个类的父类。