专注于WEB技术的IT博客

php面向对象编程之类的继承性

时间:2013-04-01分类: php浏览:3864
分享到:

这一章中我们主要讲一下关于类的继承性。


什么是类的继承性?

继承性是面向对象程序设计的重要特性之一,它是指建立一个新的派生类,从一个先前定义的类中继承属性和方法,而且可以重新定义或者加进新的属性和方法以建立类的层次或等级关系。简单地说继承性就是就是通过子类对父类进行功能扩展,继承而产生的类叫做子类,被继承的类叫做父类或超类。



php中类的继承需要注意的地方

1、一个类只能直接从另一个类中继承属性和方法,但一个类可以有多个子类。

2、子类不能继承父类的私有属性和私有方法。

3、在PHP5中类的方法可以被继承,类的构造函数也能被继承。

php中类的继使用关键字"extends"实现多个类的单继承关系,下面我们通过一个实例来演示一下父类和子类之间的层次关系。

首先我们来定义一个Person类作为父类,Person类具有人的基本属性如名字,性别和年龄以及说话和走路等行为。看代码:

<?php
     class Person{
                                                                                                                                                                                   
          public $name;
          public $age;
          public $sex;
                                                                                                                                                                                  
          public function __construct($name="" ,$sex= "男",$age=25){
               $this ->name =$name;
               $this ->sex =$sex;
               $this ->age =$age;
          }
          public  function say(){
               echo $this ->name ."在说话<br>" ;
          }
          function run(){
               echo $this ->name ."在走路<br>" ;
          }
}
?>

上面的父类的成员属性和成员方法都使用"public"关键字来修饰,如果使用"private"修饰,那么如果子类继承时会导致严重错误。

接下来我们定义一个学生类student作为父类Person的子类,同时给子类student新增一个学习(studdy)的行为,这样,作为子类的student

在拥有父类Person的所有特性的同时还拥有了父类所没有的学习(studdy)行为.代码如下:

class Student extends Person{
      function study(){
         echo $this ->name ."在学习<br>" ;
}
}
$Student= new Student( "张三" ,"男" ,"25" );
$Student->run();
$Student->study();


程序输出:

张三在走路

张三在学习

再接下来,我们定义一个子类teacher,继续去继承Student类,同时又给teacher新增一个教学行为(teaching)和一个工资属性wage,这样teacher不仅拥有Person的所有成员属性和成员方法,而且还拥有Student类的成员方法,此外还拥有扩充的成员方法teaching和成员属性wage。代码如下:

class Teacher extends Student{
        public $wage;
                                                                                                                                                            
        public function teaching(){
          echo $this ->name ."是一位教师,他每月的工资是" . $this-> wage;
        }
}
$Teacher=new Teacher("张三","男","25");
$Teacher->wage=2500;
$Teacher->run();
$Teacher->study();
$Teacher->teaching();


上面程序输出:

张三在走路

张三在学习

张三是一位教师,他每月的工资是2500

总结:在php面向对象编程中通过类的继承性,可以简化对象和类的创建工作量,增加了代码的重用性。




猜你喜欢
php面向对象之__autoload()
php面向对象之__call处理错误调用
php面向对象之__toString()
PHP面向对象之const常量修饰符
php面向对象之final的应用
php面向对象之克隆对象
PHP面向对象之对象和引用
php面向对象之类的静态成员
php面向对象之子类中重载父类的方法
php面向对象的访问类型控制
标签 : php 面向对象
除非注明,本文首发网志博客,欢迎转载!转载请注明本文地址:http://w3note.com/web/98.html,谢谢。
  • 评论
  • 赞助本站