JAVA不允许一个子类直接拥有多个直接父类,但是允许一个类实现多个接口,从而实现多继承的特性。
定义方法:
[修饰词] interface 接口名 { 接口体 }
(接口是抽象方法的集合,过两天写一写抽象类…..其实应该先写抽象类)
1.接口特点
1)接口里的方法全是抽象的(abstract)
2)接口里的成员是固定的几种。
1#定义变量: 有固定修饰符 public static final
2#定义方法: 方法也有固定修饰符 public abstract
从这可以看出,接口中的成员是公共的。(在实际操作的时候,自己不写这些修饰符编译器会自动给加上)
举例:
interface Demo{
//注意这的num大写
public static final int NUM = 3;
public abstract void run();
}
也可以写成这样的
interface Demo{
int NUM = 3;
void run();
}
3)接口不能创建对象
4)子类在使用时,必须覆盖接口的所有方法后,才能实例化。否则子类是抽象类
2.如何使用接口
在子类中用 关键字 implements 使类与接口产生关系。(类与类的关系是继承,类与接口之间的关系是实现)
定义子类去覆盖接口中的方法
举例说:
interface Demo{
int NUM = 3;
public void run();
}
class DemoImpl implements Demo{
void run(){
System.out.println("Demo run");
}
}
3.接口实现多继承
在JAVA继承的文章那个中说过的多继承,在这写的详细一点
举例:
interface A{
public void show1();
}
interface B{
public void show2();
}
//接口多实现
class C implements A,B{
//重写接口中的方法
public void show1(){}
public void show2(){}
}
接口中的功能(show)是没有方法体的,需要子类来明确方法。
4.为什么用接口
这个问题我想不明白,然后去看了看知乎。
里面David的答案很详细,看了很受用。赞