文章作者 100test 发表时间 2007:09:25 13:31:01
来源 100Test.Com百考试题网
Java语言中允许有一种叫做抽象方法的东西,他只是一个名字没有具体的实现。像是这样: public abstract void abc(); 使用了abstract关键字,结尾用“;”结束。与前几节我们用的方法都是具体方法,是有实现的。哪怕方法体中什么也不写public void abc() { } 也是具体方法。概念:包含一个或多个抽象方法的类称为抽象类。抽象类也必须声明abstract关键字。抽象类的使用有着一些限制,不能创建抽象类的实例。如果子类实现了抽象方法,则可以创建该子类的实例对象。要是子类也不实现的话,这个子类也是抽象类,也不能创建实例。
接口是什么东西呢?接口是比抽象类更抽象的类。举例: public interface Name { }接口里面的方法全都是抽象的,里面的变量全都是final的常量,而且实现接口的类必须将所有的抽象方法全部实现。抽象类里也可以有具体的方法。所以说,接口是最抽象的,其次是抽象类,而具体类本身就是对现实世界的抽象。软件开发本身就是将现实世界抽象成计算机世界。
因为抽象类和接口比具体类抽象,所以使用时他们总是被继承而被实现的。不过继承他们的类不只是一个,有很多类实现他们的抽象方法。一个方法有多种实现方式,这里用到了OOP中的多态性。这使得设计变得非常清晰。因为基类是抽象类或是接口做一个描述,底下继承的类有若干个,我们只需要对接口或抽象类操作,也用不着管有多少个实现。如果是多人共同开发的项目的话,是非常有意义的。你自己写个东西,怎么实现的也不用告诉别人,别人看个接口就够了。
接口的实现用关键字implement 而不是extends.如果用了extends的那就是继承这个接口。那么那个子类也是接口,是原来的子接口。举个接口的例子吧:
实践:
// |