<?php
class A {
public static function who() {
echo __CLASS__;
}
public static function test() {
static::who(); // Here comes Late Static Bindings
}
}
class B extends A {
public static function who() {
echo __CLASS__;
}
}
B::test(); // Outputs "B"
?>
Javaで同等のものを取得したいので、次のようなものです
class A {
public static void who(){
System.out.println("A");
};
public static void test(){
who(); //<<< How to implement a static:: thing here???
}
}
class B extends A {
public static void who(){
System.out.println("B");
};
public static void main(String[] args){
B.test(); // Outputs "A" but I want "B"
}
}
PHP 5.3 のようにwho()
内部の呼び出しを解決するには、 を呼び出します。A::test
B::who
編集:ほとんどの一般的な言語でこれを行う「標準的な方法」がないことは知っています。ハックなどを探しています。また、これは C/C++ やその他の一般的な OOP 言語で可能ですか?
これは、実際の設計のためのものではありません。私はちょうど興味があります。