| 抽 象 类 | 接 口 |
成员函数 | 抽象/ 非抽象 | 默认 public abstract |
成员变量 | 普通 、非普通 | 默认 public static final |
属性访问权限 | 自定义 | 默认 public static (原理: "模版"的实现类的共有特性,所以它是public static的) |
实例化 | 可以有构造方法,但不能实例化 Cannot instantiate the type xxx | 无构造方法,不能被实例化 Interfaces cannot have constructors. |
应用角度 | 实现代码重用, 多见于代码实现方面 | 定义模块之间通信契约, 多见于系统架构设计时发挥作用 |
联系 |
接口是一种特殊的抽象类。
派生类必须实现未实现的方法,抽象类是抽象方法,接口则是所有成员(不仅是方法包括其他成员)
不能实例化;
包含未实现的方法声明;
除了被继承,没有任何意义。
| |
抽象类是对象的抽象,然而接口是一种行为规范。 |
=================================================================================================================================
1.常量使用public static final的原理:
final 定义常量。一次赋值,终身使用。Java中用final标识常量。
static 静态变量,全局访问。无需初始化对象,可用类名直接访问。只被分配一次内存,节约内存;不必初始化对象,使用方便。
public 接口作为模板,访问权限需要保证任意访问。
2. static
成员变量和成员函数:如若是static,可用 ClassName.variableName / ClassName.functionName() 访问。
ps:
静态方法使用原则:1,有且只能调用其他static方法 2,只能访问static 变量 3, 不能用super,this
类: 如若是static, 一般普通类不支持设为静态类。常用于内部类。无需实例化外部类。
3.JVM 加载顺序:
静态成员变量 --> 静态代码块 --> 同等级按照前后顺序加载