接口在java中是种抽象类型,主要是对行为进行抽象,用interface声明,一般用类来
继承接口,进而继承实现接口中的抽象方法。
interface A{
public static final int age = 10;
public abstract void fun1();//不能有具体的实现
}
interface B{
int b =100;
void fun2();
}
两个接口,接口变量默认的类型是public static final类型,方法默认public abstract
类型。
接口之间也是可以继承的:
interface AB extends A,B{
void fun3();
}
类可以继承不止一个接口,这就解决了java中的单继承问题
class C implements A,B{
@Override
public void fun1() {
// TODO Auto-generated method stub
System.out.println("A.fun1()");
}
@Override
public void fun2() {
// TODO Auto-generated method stub
System.out.println("B.fun2()");
}
}
同样接口不能通过new来实例化,想要实例化只能向上转型
public static void main(String[] args) {
// TODO Auto-generated method stub
C c = new C();//派生类
A a = new a();//报错
A b = new C();
}
接口可以继承接口但不能实现接口,实现要借助类
说明接口和抽象类的几点区别:
1,一个子类只能继承一个父类,但可以实现多个接口(解决多继承问题),接口可以
继承多个类
2,抽象类可以有非抽象方法,但接口中都是抽象方法
3, 接口的数据成员都是 public static final
4,接口是对行为的抽象,但是抽象类是对整体的抽象
如有错误,请多多指教