Başta, her iki yöntemin neden kurucuda çalıştığı konusunda kafam karışmıştı, ama şimdi anladığımı düşünüyorum. Uzanan sınıflar, ebeveynin yöntemlerini sınıfın kendisinde beyan edilmiş gibi miras alır ve ebeveynlerde yöntemler vardır, dolayısıyla her ikisi de çalışmalıdır.php'de üst yöntemi çağırmanın birden fazla yolu
Şimdi, yöntemi çağırmanın (parent
veya this
aracılığıyla) tercih edilen bir yolu (örn. En iyi uygulama) olup olmadığını ve bunların aynı kodu yürütmenin gerçekten aynı yöntemleri olup olmadığını merak ediyorum. diğerini kullanırken herhangi bir uyarı.
Üzgünüz, muhtemelen bunu düşünüyorum. Ben soruyu yanlış anlama bulunmadığım sürece (bu durumda köpeğinde) alt sınıf bu yöntemi üzerine çünkü bunu uzatmak gelmez çünkü
abstract class Animal {
function get_species() {
echo "test";
}
}
class Dog extends Animal {
function __construct(){
$this->get_species();
parent::get_species();
}
}
$spike = new Dog;
"Uzat" olmadan nasıl yaparım? "İnsan" sınıfında klapa "bacak" a benzediğim gibi, ancak ebeveynin "insan" işlevselliğine ihtiyacım olmadığı için onu genişletmem gerekmiyor. Şimdi, eğer 'insan' içinde bir '$ leg = yeni bacak()' yaratmış olsaydım, insanın işlevlerini bacağın '$ bacağı' içinden nasıl arardım? – user151496
@ user151496 Bacak, insanın bir alt sınıfı değildir. Bir insanın pek çok bacağı vardır, ama bir bacak bir tür insan değildir. Bu nedenle, insandan miras kalan bir bacak sınıfına sahip olmamalısınız, çünkü bir bacak insan değildir. – Beetle
Leg'i Leggy arayüzüne sahip bir sınıf yapar mısınız? Ya da sadece İnsan sınıfı Leggy'yi uygular mı? Bir bacağın insanlara özel olmadığını değil, aynı zamanda insan bacaklarının benzersiz bir biçimde insan olduğunu ve insanların genel bir özelliğini de tanımladığını en iyi nasıl tanımlayabiliriz? – Anthony