php基础-6
类的继承和方法重写
-
1 <?php 2 3 class people{ 4 public function __construct($name, $age, $sex) 5 { 6 $this->age = $age; 7 $this->name = $name; 8 $this->sex = $sex; 9 } 10 11 public function getInfo(){ 12 $i = "这是一个$this->sex"."人,他的姓名人$this->name,他的年龄是$this->sex"; 13 return $i; 14 } 15 } 16 17 class Male extends people{ 18 public function __construct($name, $age) 19 { 20 parent::__construct($name, $age, '男'); 21 } 22 } 23 24 $i = new Male("Bob", 18); 25 echo $i->getInfo();
先创建一个父类people,然后创建一个子类Male使用关键字extends来继承people类,在Male中常见舒适化方法__construct,再在该方法中对父类的进行初始化。
将Male的初始化方法中的参数传给people中的初始化方法的,因为是男性(male),所以性别默认是男,所以Male的初始化只用有age,name这两个参数就可以了。完成父类的初始化之后,在对该子类进行实例化,实例化的对象就拥有父类和子类的所有方法了。
- 类方法的重写
1 <?php 2 3 class people{ 4 public function __construct($name, $age, $sex) 5 { 6 $this->age = $age; 7 $this->name = $name; 8 $this->sex = $sex; 9 } 10 11 public function getInfo(){ 12 $i = "这是一个$this->sex"."人,他的姓名人$this->name,他的年龄是$this->sex"; 13 return $i; 14 } 15 } 16 17 class Male extends people{ 18 public function __construct($name, $age) 19 { 20 parent::__construct($name, $age, '男'); 21 } 22 public function getInfo(){ 23 // parent::getInfo(); 24 $i = "这是一个$this->sex"."人"; 25 return $i; 26 } 27 } 28 29 $i = new Male("Bob", 18); 30 echo $i->getInfo();
我们运行这段程序,可以看到,当父类和子类拥有相同的方法的时候,php会执行子类里面的方法。这里是我们将父类的方法重写了,如果想在子类里运行父类的方法,直接用parent::父类里面的方法。