haXe的类派生机制和Java大同小异,也存在类和接口,一个类也是只能继承一个超类,但可以实现多个接口,这里仅仅总结一下不一致的一些细节情况。
1. 接口实现的语法稍有不同
Java中implements关键字后面可以跟多个接口名,比如A implements Runnable, Serializable { ... }
但haXe中每个implements后面只能跟一个接口名,但可以用多个implements。如:A implements Interface1, implements Interface2
2. haXe中可以把类当做接口来实现
这样比Java更灵活,变相的实现了多类继承。当然,以实现方式继承来的所有方法的内容就完全要重新编写了。
3. haXe中没有protected和package级访问限制
Java中的类成员有public, protected, private和隐式的package四种不同的访问限制,但haXe中只有public和private两级。
haXe中的private访问级别基本相当于Java的protected级别,即可以被子类继承。haXe中没有package对应的访问级别,也就是同包的类并没有任何特权。
4. haXe中,子类覆盖超类的方法,必须显式的使用override修饰符
比如:
class B extends A {
override public function foo() { ... }
override private function foo1() { ... }
}
注意:因为在haXe中private相当于Java中的protected级别,因此这里出现了覆盖的私有方法,这是合法的。