前言
在学习 接口之 前,我们先来了解一下 抽象类 因为这俩货长的很像!
抽象类定义规则
- 抽象类和抽象方法都必须用 abstract 关键字来修饰
- 抽象类不能被实例化,也就是不能用 new 关键字去产生对象
- 抽象方法只需声明,而不需实现
- 含有抽象方法的类必须被声明为抽象类,抽象类的子类必须复写所有的抽象方法后才能被实例化,否则这个子类还是个抽象类
抽象类也可以像普通类一样,有构造方法、一般方法、属性,更重要的是可以有一些抽象方法,留给子类去实现,而且在抽象类中声明类构成方法后,在子类中必须明确调用。
接口的定义
- 接口里的数据成员必须初始化,且数据成员均为常量
- 接口里的方法必须全部声明为 abstract,也就是说,接口不能像抽象类一样保有一般的方法,而必须全部是“抽象方法”
接口的定义格式:
interface 接口名称 // 定义抽象类
{
final 数据类型 成员名称 = 常量 ; // 数据成员必须赋初值
abstract 返回值的数据类型 方法名称(参数…);
// 抽象方法,注意在抽象方法里,没有定义方法主体。
}
接口与一般类一样,本身也具有数据成员与方法,但数据成员一定要赋初值,且此值将不能再更改,方法也必须是“抽象方法”。也正因为方法必须是抽象方法,而没有一般的方法,所以抽象方法声明的关键字 abstract 是可以省略的。相同的情况也发生在数据成员身上,因数据成员必须赋初值,且此值不能再被更改,所以声明数据成员的关键字 final 也可省略。事实上只要记得:
(1)、接口里的“抽象方法”只要做声明即可,而不用定义其处理的方式;
(2)、数据成员必须赋初值,这样就可以了。
在 java 中接口是用于实现多继承的一种机制,也是 java 设计中最重要的一个环节,每一个由接口实现的类必须在类内部复写接口中的抽象方法,且可自由地使用接口中的常量。
既然接口里只有抽象方法,它只要声明而不用定义处理方式,于是自然可以联想到接口也没有办法像一般类一样,再用它来创建对象。利用接口打造新的类的过程,称之为接口的实现(implementation)。
接口与抽象类的不同
接口是 java 实现多继承的一种机制,一个类只能继承一个父类,但如果需要一个类继承多个抽象方法的话,就明显无法实现,所以就出现了接口的概念。一个类只可以继承一个父类,但却可以实现多个接口。
接口的特性
- 接口不是类,尤其不能使用 new 运算符实例化一个接口,尽管不能构造接口对象,但是却可以声明接口的变量。
- 接口对象必须引用实现接口的类的对象。
总结
这只是些简单的定义,先笔记下来,以后再深入研究!
-- 混子型打野--