नीचे कोड पर विचार करें:PHP में इंस्टेंस चर को ओवरराइड करना क्यों संभव है लेकिन जावा में नहीं?
<?php
class Base {
protected $name = "Base";
public function getName() {
return $this->name;
}
}
class Foo extends Base {
protected $name = "Foo";
}
$f = new Foo();
echo $f->getName(); // output: Foo
$b = new Base();
echo $b->getName(); // output: Base
जैसे कि जावा अन्य भाषाओं आप उदाहरण चर ओवरराइड करने के लिए अनुमति नहीं दी जाएगी में के बाद से, लेकिन यह PHP में संभव है।
ऐसा इसलिए है क्योंकि PHP कमजोर प्रकार की भाषा है इसलिए यह संभव है?
मैं वोट तो मैं आपका जवाब तक सामने लाना नहीं कर सकता से बाहर हूँ पढ़ा है, लेकिन यह केवल एक ही है कि दूर से क्यों PHP में की सवाल का जवाब देने के करीब है, सुपर क्लास इवर जावा एट में जबकि ओवरराइड की गई है अल, सुपरक्लास इवर छाया/छुपा हुआ है (और वे काफी समान नहीं हैं)। – BoltClock