接口与抽象类之间的区别
接口
-
接口是一种特殊的类文件
-
作用:制定规则,降低耦合度
-
使用规则:
a. 接口中的属性,默认都是静态常量属性
b. 接口中的方法都是抽象的
c. 接口中的访问权限不能是 private
d. 接口与接口之间可以实现多继承,但是接口之间不能互相实现
e. 接口中不存在构造方法
抽象类
-
抽象类由 abstract 修饰
-
抽象类主要作用是:降低接口实现类与接口之间的实现难度 (********)
-
使用规则:
a. 抽象类可以声明抽象方法,也可以生成具体方法
b. 抽象类声明抽象方法必须由子类进行重写
c. 抽象类实现接口时,不需要对接口方法进行重写
d. 抽象类有构造方法,但是不能使用
抽象类与接口的区别
- 抽象类中的方法可以有方法体,就是能实现方法的具体功能,但是接口中的方法不行
- 抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是 public static final 修饰的,方法都是完全抽象
- 抽象类中可以含有静态代码块以及静态方法,而接口中不行。
- 一个类只能继承一个抽象类,而一个类却可以实现多个接口
注 : JDK 1.8 之后 接口中可以有静态方法和方法体了。
降低接口实现类与接口之间的实现难度 案例:
public interface A{
void test1();
void test2();
void test3();
}
// 由 B 去实现接口 A 中的方法 然后 C 再去继承 B 那么 就只需要实现 test1
public abstract class B implement A{
@Override
public void test02(){
}
@Override
public void test03(){
}
}
public class C extends B{
@Override
public void test1(){
// 这样 C 就只需要去重写 它需要的 方法了
}
}