抽象:当一个方法我们只能确定它的申明部分不能够确定它的实现部分。这种情况下,我们就不能够打上“{}”,而是直接写上“;”结束。这种只有申明部分,没有实现的方法称为抽象方法。语法上我们增加一个可选修饰符 abstract。
那么如果一个类拥有抽象方法,那么这个类必须用abstract来修饰,这个类就属于抽象类。
一个类如果有抽象方法那么这个类一定是抽象类;如果一个类是抽象类,那它不一定有抽象方法。
抽象类不能够产生对象,但它可以有构造方法为子类提供。
抽象可以保证将设计者的设计意图有效的传递下去!
接口是一种更为特殊的“抽象类”。在接口中,所有方法都是抽象方法,所有方法都不提供具体的实现。
使用interface来定义一个接口。接口定义同类的定义类似,也是分为接口的声明和接口体,其中接口体由常量定义和方法定义两部分组成。定义接口的基本格式如下:
[修饰符] interface 接口名 [extends 父接口名列表]{
[public] [static] [final] 常量;
[public] [abstract] 方法;
}
修饰符:可选,用于指定接口的访问权限,可选值为public。如果省略则使用默认的访问权限。
接口名:必选参数,用于指定接口的名称,接口名必须是合法的Java标识符。一般情况下,要求首字母大写。
extends 父接口名列表:可选参数,用于指定要定义的接口继承于哪个父接口。当使用extends关键字时,父接口名为必选参数。
方法:接口中的方法只有定义而没有被实现。