接口与抽象类的区别-Java

概念-抽象类:

   类是对某一个对象的具体描述,抽象类则是对有共通之处的对象,描述共通之处的类;
包含抽象方法的类一定的抽象类,抽象类并不一定包含抽象方法;抽象类中可以有数据成员,但数据成员必须是static final类型的。
抽象类的实例化需要通过子类进行实现,抽象类不能被实例化;并i额子类中的抽象方法不能与父类中的抽象方法重名。
概念-抽象方法:

  声明而没有实现的方法,必须用abstract修饰;并且,继承抽象类的子类必须要重写抽象类中的抽象方法
概念-接口:

  接口是抽象方法的集合。是对某一同类行为的抽象。
接口中的变量会被隐式地指定为public static final变量(并且只能是public static final变量,用private修饰会报编译错误),
而方法会被隐式地指定为public abstract方法且只能是public abstract方法(用其他关键字,比如private、protected、static、
final等修饰会报编译错误),并且接口中所有的方法不能有具体的实现,也就是说,接口中的方法必须都是抽象方法。
  参数                   抽象类                          接口
默认的方法实现          它可以有默认的方法实现 接口完全是抽象的。           它根本不存在方法的实现
实现               子类使用extends关键字来继承抽象类。如果子类      子类使用关键字implements来实现接口。它需要

              不是抽象类的话,它需要提供抽象类中所有声明的方法的实现。    提供接口中所有声明的方法的实现

构造器              抽象类可以有构造器                        接口不能有构造器
与正常Java类的区别       除了你不能实例化抽象类之外,它和普通Java类没有任何区别      接口是完全不同的类型
访问修饰符            抽象方法可以有public、protected和default这些修饰符            接口方法默认修饰符是public。你不可以使用其它修饰符。
main方法               抽象方法可以有main方法并且我们可以运行它                    接口没有main方法,因此我们不能运行它。
多继承              抽象方法可以继承一个类和实现多个接口                 接口只可以继承一个或多个其它接口
速度                它比接口速度要快                      接口是稍微有点慢的,因为它需要时间去寻找在类中实现的方法。
添加新方法            如果你往抽象类中添加新的方法,你可以给它提供默认的实现。 如果你往接口中添加方法,那么你必须改变实现该接口的类。

                因此你不需要改变你现在的代码。