{ protected $username = '******'; protected function fun1() { echo 'ABC<br/><br/>'; } } class Son extends Father { function fun2() { echo $this->username, '<br/>'; $this->fun1(); } } $s = new Son(); $s->fun2(); ////////////////////////////////////////////// class Ftest { private $username = '******'; private function fun1() { echo '1234<br/><br/>'; } public function fun2() { echo $this->username, '<br/>'; $this->fun1(); } }
public function run() { echo 'I run fast'; } private function drive() { echo 'I drive a car'; } } class Son extends Dad { public function goToSchool() { echo 'I go to school'; } public function whatIsMyName() { echo $this->name; } } $son = new Son('Nick', 'Long'); $son->run(); //will output I run fast $son->goToSchool(); //will output I go to school $son->drive(); //produces an error $son->whatIsMyName(); //will ouput Nick
<?php $object = new Son(); $object->test(); $object->test2(); class Dad { function test() { echo "[Class Dad] I am your Father<br>"; } } class Son extends Dad { function test() { echo "[Class Son] I am Luke<br>"; } function test2() { parent::test(); } }
<?php class GrandFather { public function gfAge() { return ' age is 80'; } } class Father extends GrandFather { public function fAge() { return ' age is 50'; } } class Son extends Father { public function sAge() { return 'age is 20'; } public function myHistory() { echo "my grand father " . parent::gfAge(); echo "my father " . $this->fAge(); echo "my " . $this->sAge(); } } $son = new Son(); $son->myHistory();
<?php class Father { function hello() { echo '<br> Hello I\'m your father'; } } class Son extends Father { function hello() { parent::hello(); echo '<br> Hi I\'m maulik'; } } $maulik = new Son(); $maulik->hello();
if (__CLASS__ === $_CLASS) { $this->do_pay(); } else { echo 'No permission to do-pay!', PHP_EOL, '<hr>'; } return; } private function do_check() { echo 'Checking money,please waiting!', PHP_EOL, '<hr>'; return; } private function do_pay() { echo 'Pay success!', PHP_EOL, '<hr>'; return; } } class Son extends Base { } $base = new Base(); $son = new Son(); $base->pay_money(); $son->pay_money(); # [Outputs like this] # 以上例程输出:@2015/06/23 周二 // Checking money,please waiting! // Pay success! // Checking money,please waiting! // No permission to do-pay!
header('content-type:text/html;charset=utf-8'); class Father { function fun1() { //echo __METHOD__ , '<br/><br/>'; //形式Father::fun1 echo '我是父类的fun1()方法<br/><br/>'; } } class Son extends Father { function fun1() { //调用爸爸的fun1()方法 parent::fun1(); echo '<span style="color:red">我是子类的fun1()方法</span><br/><br/>'; echo '还可以<br/><br/>'; Father::fun1(); } function fun2() { parent::fun1(); echo '1111111我是子类的fun2()方法<br/><br/>'; Father::fun1(); $this->fun1(); //调用自身类的fun1()方法 } } $s = new Son(); $s->fun3();
{ public $username = '******'; protected $age = 24; private $sex = TRUE; protected function fun1() { //public protected private; echo '我是父类的fun()1', '<br /><br />'; } } class Son extends Father { function fun1() { echo $this->username, '<br /><br />'; parent::fun1(); //当父类方法被覆盖后,要想调用父类的方法,可以用parent::方法名或Farther::方法名调用; echo '我是子类的fun()1', '<br /><br />'; Father::fun1(); } private function fun2() { echo '我是子类fun2()方法'; } } //创建对象 $t = new Son(); //当子类的方法名与父类重复时,会产生覆盖,将父类的方法名覆盖,而调用自己的方法; //访问类的属性(访问控制符)此外,属性时允许动态添加 $t->username; $t->fun1();