PHP genel devralma (sadece)

0 Cevap php

Kullanıcının bu sınıf atalım

class A {
  protected static function ident() { return "I am A"; }
  public static function say() { return "I say '".self::ident()."'!"; }
}

Sonra A sınıfını genişletir ve bu gibi ident() geçersiz kılmak gerekir

class B extends A {
  protected static function ident() { return "I am B"; }
}

Şimdi B::say(); çağrıldığında, sonucudur I say 'I am A'. Üretmek için onu zorlamak için nasıl bir teknik var mı I say 'I am B' without overriding the say() method? (Please don't ask me why to do this, just trust me it is reasonable in my project)

Ben soyut bir sınıf veya arayüz ile mümkün olduğuna inanıyorum, ama nasıl bilemiyorum. PHP imkansız ise, bu özelliği uygular (Haskell'de hariç) herhangi bir dil var mı?

0 Cevap