Java中的class文件和Interface文件有啥区别
Java中的class文件和Interface文件有以下区别:1.性质和作用不同;2.含义不同;3.文件生成效率不同。性质和作用不同在于,class是从一些列相关对象中抽象出来的概念,反应的是事物的内部共性,而interface是为了满足外部调用定义的一个功能约定,反映的是事物的外部特性。
1.性质不同
class(类)描述”类别“,是从一些列相关对象中抽象出来的概念,反应的是事物的内部共性。
interface(接口)描述形为模式、行为特征、规范、标准的,是为了满足外部调用定义的一个功能约定,反映的是事物的外部特性。
2.含义不同
interface是指接口,其中只有抽象方法,没有数据域,不能用其创建对象,可以继承其他接口,但是不能实现其他接口。
而class是指类,不能有抽象方法,可以有数据域,可以创建对象,可以实现接口,但不能继承接口。class文件中只能包含一个类或者接口。
3.文件生成效率不同
在interface和class中定义相同的常量,interface生成的class文件比class生成的class文件会更小,而且更简洁,效率更高。
延伸阅读
class文件是什么
class文件全名称为Java class文件,主要在平台无关性和网络移动性方面使Java更适合网络。它在平台无关性方面的任务是:为Java程序提供独立于底层主机平台的二进制形式的服务。每一个class文件都对应着少数一个类或者接口的定义信息,但是相对地,类或者接口并不一定都必须定义在文件里。
Class文件格式采用一种类似于C语言结构体的伪结构来存储数据,主要有两类数据项,无符号数和表,无符号数用来表述数字,索引引用以及字符串等,比如 u1,u2,u4,u8分别代表1个字节,2个字节,4个字节,8个字节的无符号数,而表是任意数量的可变长项组成,是有多个无符号数以及其它的表组成的复合结构,所有表的命名都习惯性地以“_info”结尾,无论是无符号数还是表, 当需要描述同一类型但数量不定的多个数据时, 经常会使用一个前置的容量计数器加若干个连续的数据项的形式, 这时候称这一系列连续的某一类型的数据为某一类型的“集合”。

