class Bar { public function test() { $this->testPrivate(); $this->testPublic(); } public function testPublic() { echo "Bar::testPublic\n"; } private function testPrivate() { echo "Bar::testPrivate\n"; }}class Foo extends Bar { public function testPublic() { echo "Foo::testPublic\n"; } private function testPrivate() { echo "Foo::testPrivate\n"; }}$myFoo = new foo();$myFoo->test(); // Bar::testPrivate // Foo::testPublic
請大神解釋下這段代碼,就最後面輸出為什麼是這樣?
回複內容:
class Bar { public function test() { $this->testPrivate(); $this->testPublic(); } public function testPublic() { echo "Bar::testPublic\n"; } private function testPrivate() { echo "Bar::testPrivate\n"; }}class Foo extends Bar { public function testPublic() { echo "Foo::testPublic\n"; } private function testPrivate() { echo "Foo::testPrivate\n"; }}$myFoo = new foo();$myFoo->test(); // Bar::testPrivate // Foo::testPublic
請大神解釋下這段代碼,就最後面輸出為什麼是這樣?
private 可見度的方法不存在繼承一說,所以調用方法在哪個類裡,就是調用那個類對應的private方法(如果不存在就報錯了)
坑爹的繼承鏈方法調用..會把很多人繞暈..
建議看看c語音實現class和繼承...你就會明白很多