16.抽象类&接口
2021-08-14 本文已影响0人
一碗清酒慰平生
抽象类
类中包含抽象方法的类,要定义为抽象类
eg:public abstract class 抽象类名{}
-
抽象方法
一个没有方法体的方法
public abstract void 方法名(); -
特点
1.抽象类不一定有抽象方法,有抽象方法的类一定是抽象类
2.抽象类不能实例化,但可以抽象类多态
3.抽象类的子类要么重写抽象类中的所有抽象方法,要么还是抽象类 -
成员特点
成员变量(变量,常量),成员方法(抽象方法,非抽象方法),构造方法都可以正常有
构造方法只用于与子类访问父类数据的初始化,不能用于实例化
抽象方法限定子类必须完成某些动作
非抽象方法提高代码复用性
接口
一种公共的规范标准,使得符合规范标准的成员都可以正常使用相应的功能
Java中的接口更多体现在对行为的抽象
-
定义
public interface 接口名{}
-
实现接口
public class 类名 implements 接口名{}
-
特点
接口多态的方式实例化
接口类的实现类要么重写接口类中的所有抽象方法,要么是抽象类 -
成员特点
成员变量(只能常量,public static final),成员方法(只能抽象方法),无构造方法
接口主要对行为进行抽象的,没有具体存在的构造方法 -
类和接口的关系
实现关系,可单实现,也可多实现,还可在继承一个类的同时实现多个接口
-
接口和接口的关系
继承关系,可单继承,也可多继承
抽象类和接口的区别
对象 | 成员区别 | 关系区别 | 设计理念区别 |
---|---|---|---|
抽象类 | 常量,变量;有构造方法;有抽象方法,非抽象方法 | 继承,单继承 | 对类抽象,包括属性,行为 |
接口 | 常量;抽象方法 | 类与接口是实现,可多实现;接口与接口是继承,可多继承 | 对行为抽象 |