一、为什么需要接口:
java中不允许多重继承,一个子类只可以继承一个父类,只能继承父类的功能。
但是如果一个类想要继承多个类的功能,我们就需要用到接口(interface)来实现了。
二、接口的特点:
①接口中没有成员变量,都是静态常量
②接口中没有普通方法,都是抽象方法
③接口类不可以被实例化
三、让我们创建一个接口来具体感受
使用interface关键字创建一个 接口类Inter2
public interface Inter2 {
// public Inter2(){//接口中没有构造方法
// }
// int age;//接口里没有成员变量,都是常量
int age = 10;//都是常量,会为变量自动拼接public static final
public static final int age2 = 12;
//接口没有普通方法,都是抽象方法
//方法可以简写,会为方法自动拼接
//public abstract / abstract public
void add();
public abstract void add2();
abstract public void add3();
}
使用implements关键字创建一个普通实现类(重写所有接口的抽象方法)Inter2Impl
public class Inter2Impl implements Inter2{
public void add(){
System.out.println("add()..");
}
@Override
public void add2() {
// TODO Auto-generated method stub
System.out.println("add2()..");
}
@Override
public void add3() {
// TODO Auto-generated method stub
System.out.println("add3()..");
}
}
使用implements关键字创建一个抽象子类Inter2Impl2
abstract class Inter2Impl2 implements Inter2{//抽象的实现类
}
创建一个测试类UseInter
public class UseInter {
public static void main(String[] args) {
Inter2 i = new Inter2Impl();
System.out.println(i.age);
//age是static的,可以直接用类名调用
System.out.println(Inter2.age);
i.add();
}
}
小总结:
①接口类需要使用interface关键字来创建
②实现类需要使用implements关键字来实现接口
③实现类可以是普通实现类,但是要求重写接口的全部抽象方法
④实现类可以是抽象子类,不需要重写接口的全部抽象方法,使用abstract来修饰抽象子类