接口抽象类是Java中两种不同的概念,它们都是用于定义抽象方法的,但它们的用途和实现方式有所不同。
接口是一种完全抽象的类,它只包含抽象方法和常量,接口不能被实例化,只能被其他类实现,接口中的抽象方法必须由实现接口的类来实现,接口主要用于定义一组规范,规定了实现类需要具备哪些方法和属性。
抽象类是一种特殊的类,它可以包含抽象方法和非抽象方法,抽象方法是在抽象类中使用关键字abstract声明的方法,它没有具体的实现,子类继承抽象类时,必须实现抽象类中的所有抽象方法,抽象类主要用于定义一些通用的功能,可以作为父类被其他类继承。
接口和抽象类的主要区别如下:
1、接口不能有构造方法,抽象类可以有构造方法;
2、接口中的成员变量默认为public static final,而抽象类中的成员变量可以是任意类型;
3、一个类可以实现多个接口,但只能继承一个抽象类;
4、接口中的方法默认为public abstract,而抽象类中的方法可以是public、protected或private;
5、接口中的方法参数默认为void,而抽象类中的方法参数可以是任意类型。