抽象类和接口的区别

语法区别:

抽象类--关键字:abstract
     --方法:有抽象方法,也可有普通方法
接口  --关键字:interface
     --方法:都是抽象方法(但是!!!JDK8以后,也可以有普通方法,但是需要用 default/static修饰才行)

使用区别:

抽象类:
abstract class A{
   abstract void f1();
   public void f2(){...}
}
class B extends A{
    @OverRide
    public void f1(){...}
}
B继承A,且只能集成
B继承A以后需要重写A例的所有抽象方法,不然B就是抽象类
接口:
interface X{
    void f1();
    public default void f2(){...}
    public static void f3(){...}
}
interface Z{}
interface Y implements X,Z{}
Y可以多实现X,Z...,如果B实现X接口,那么需要重写X里面的所有抽象方法~~~~

















王子
1 声望0 粉丝