您的位置:首页 > 编程语言 > Java开发

Java中的接口和抽象类

2014-04-14 20:04 309 查看
第一节 接口的概念

1 定义接口的必要性

□提供统一的格式;

□Java不支持多继承,只支持单继承。通过接口来实现多继承的目的。

多重继承是指一个子类可以有多个父类,该子类可以全部或部分继承所有直接父类的数据成员和成员方法。

Java出于安全考虑不支持多重继承而只支持单一继承,Java不允许多继承,但可以实现多个接口,并且在继承的同时可以实现接口。

第二节 接口的格式与实现

1 定义接口

格式:

[public] interface 接口名[extends
父接口名列表]{

常量数据成员声明

抽象方法声明

}

2 接口的注意事项

(1)接口定义的关键字是interface,而不是class;

(2)修饰符public
用来指明任意一个类都可以实现此接口。如果一个接口声明中没有public
修饰符,则只能与本接口在同一个包中的类才能访问它;

(3)接口体中的数据成员全是用final static修饰的,即它们一定是给出标识符的常量,即使没有写出这两个修饰符也是如此,而且一定要给他们赋初值;

(4)接口体中的定义的方法都是抽象方法,即默认是public abstract修饰符修饰,即使没有写出这两个修饰符也是如此;

(5)接口没有构造器;

(6)接口也具有继承性,可以通过extends来声明该接口的父接口,而且一个接口可以有一个以上的父接口,这点同类的继承不同。

3 接口的实现

在Java语言中,实现接口可通过关键字 implements
来完成。

格式:

[public] class 类名 [implements 接口列表]{

}

4 抽象方法

一个抽象方法的定义,除了在方法名前加abstract
关键字外,该方法还不能有方法体,也就是说方法名后不能有花括弧“{}”。注意方法体为空和无方法体是两个概念,方法体为空指方法名后存在花括弧,只是花括弧中无内容。而无方法体是指方法名后就没有花括弧。

第三节 抽象类

1 抽象类

用 abstract
修饰符修饰的类,我们称为抽象类,在抽象类可以有抽象方法也可以没有抽象方法。

格式:

[修饰符] abstract class
类名{

}

2 定义抽象类的规则

(1)一个抽象的定义是通过使用关键字abstract放置在表示类关键字class的前面来标识的。一般而言,一个抽象类至少应定义一个抽象方法,但并不是必须定义一个抽象方法,类体中也可以不存在抽象方法;

(2)当子类继承了一个抽象类时,必须实现该抽象类中定义的全部抽象方法,否则必须被声明为抽象类;

(3)当类实现了一个接口,但并没有实现该接口中的所有方法时,该类必须被声明为抽象类,否则编译会出现错误;

(4)一个抽象类,由于其表明的是未完全实现的概念,因此不能被实例化(创建对象)。当试图调用一个抽象类的构造器来创建该类的一个实例时,会产生编译错误。

第四节 接口与抽象类的异同

相同:

□接口和抽象类都有抽象方法,都代表定义层次上的抽象;

□接口和抽象类都不能创建对象。

不同:

□接口中没有构造器,抽象类中可以有构造器;

□接口中只能有接口常量和抽象方法,抽象类中可以有抽象方法,也可以有非抽象方法;

□接口中的抽象方法的修饰符不写,默认还是abstract public。而抽象类中的抽象方法必须写abstract关键字。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: