一、抽象类与抽象方法
- 使用abstract修饰的类叫做抽象类
- 使用abstract修饰的方法叫做抽象方法,抽象方法只允许声明,不允许实现(无方法体)
抽象方法或者抽象类不能使用final修饰,因为final修饰类表示不能被继承,而抽象类的作用大多都需要子类继承而设计;使用final修饰方法表示子类不可重写,那该抽象类将会毫无意义。同样,也不可以使用static修饰方法,既抽象方法必须是实例方法
- 抽象类中可以有抽象方法,也可以有普通方法
- 抽象类不能使用new创建对象
- 若一个类继承了抽象类,那么该类必须重写抽象类中的所用抽象方法
二、接口
抽象类中还可以包含非抽象方法,但接口中只能包含抽象方法和静态常量
2.1语法规则
- 使用interface定义一个接口
- 接口中的public可以省略
- 定义静态常量时public static final可以省略
- 接口不能被实例化
interface Interface {
String name="zs";
default void fun(){
System.out.println("1");
};
}
2.2接口与多态
接口的定义好之后可以让多个子类继承,用不同的方法实现。比如定义一个接口,里面有work方法,那么有的人的工作就是写PPT,有的人是敲代码,有的是扫地,这时只需要实现接口就可解决。
三、接口与抽象类的区别
区别 | 抽象类 | 抽象类 |
---|---|---|
结构组成 | 普通类+抽象方法 | 抽象方法+全局常量 |
子类使用 | 使用extend继承抽象类 | 使用implement实现接口 |