我有类A,方法foo和bar,由A1和A2实现。 A1和A2的功能都是一样的。换句话说:静态方法通过虚拟实现调用派生类型? (Android)
public class A {
public int foo() { return 0; };
public int bar() { return 1; };
}
class A1 extends A {
public int AnotherFooFunction() { return foo(); }
public int AnotherBarFunction() { return bar(); }
}
class A2 extends A {
public int AnotherFooFunction() { return foo(); }
public int AnotherBarFunction() { return bar(); }
}
以这种方式保持代码或将这些虚拟方法换成静态方法会更好吗? (在Java中,所有非最终/非私有都被认为是虚拟的,对吗?)
根据Android Developer Docs中的Designing for Performance部分,我应该将这些虚拟方法换成静态方法。因此,上述变为:
public class A {
public int foo() { return 0; };
public int bar() { return 1; };
}
class A1 extends A {
public int AnotherFooFunction() { return A.foo(); }
public int AnotherBarFunction() { return A.bar(); }
}
class A2 extends A {
public int AnotherFooFunction() { return A.foo(); }
public int AnotherBarFunction() { return A.bar(); }
}
这是它应该如何“应该”?我完全意识到我可能会误解文档中的这一段。
在上一个代码示例中,是否将'class A'中的方法声明为'public static int'? – mob 2010-07-08 17:51:20