然后就是抽象类的定义:
Java代码
package classdeinfe; public abstract AbstractClass { public abstract void abstractMethod(); public void entityMethod() { .... } } |
和一般的类不一样,abstract类里面可以定义抽象方法。抽象方法不需要实现,这点和一会介绍的接口类似。
但是和接口不一样的地方,就是抽象类里面也可以定义具体的方法体。抽象类的一般用法就是定义一类类的普遍行为,然后预言其中实现各部相同但是却共有的方法,例如:
Java代码
package classdeinfe; public abstract Vehicle { public abstract float speed(); public void run() { .... } public void stop() { .... } public boolean isMoving() { .... } } |
上例列出了一个交通工具抽象类,各类都会有run,stop,isMoving和speed方法。而且stop,run和isMoving方法行为默认都是一样的,而speed则留待子类去实现。当我们每个子类都预期会实现父类某个特定方法的时候,建议把这个父类方法定义为一个抽象方法。这样可以强迫子类针对该方法去定义各自的行为。
假如我们在类定义的时候,使用了final关键字,则该类不允许再被继承:
Java代码
package classdefine; public final class FinalClass { } |
最后我们说一下接口。接口的定义和类类似:
Java代码
package classdeinfe; public interface MyInterface { public static final String CONSTANT_DEMO = "test"; public void publicMethod(); void defaultMethod() throws Exception; } |
接口类专门用于定义一系列的方法,及相应的一些配套常量。现在我们就多了一种指针——接口指针。首先看看以下例子: