>  기사  >  백엔드 개발  >  php 继承_PHP教程

php 继承_PHP教程

WBOY
WBOY원래의
2016-07-12 09:07:191036검색

php 继承

<?php
/*
继承性
    1.面向对象的三大特性之一
    2.开放性,可扩充性
    3.增加代码的重用性
    4.提高了软件的可维护性
     
    php 使弱类型语言,没有重载的概念
     
    子类中重载父类的方法
        子类可以声明和父类相同的方法名,即子类覆盖父类中同名的方法
        在子类中调用父类中被覆盖的方法
            parent::方法名
              
    在子类中编写构造方法,如果父类中也有构造方法,一定要调用父类中的构造方法
    注意:子类中重载的方法,不能低于父类中的访问权限(子类可以放大权限,但不能缩小权限)
    */
    include "./Person.class.php";
     
    class Student extends Person{
        var $school;
         
        function __construct($name="name1",$age =20,$sex="女", $school){
            $this->name=$name;
            $this->age=$age;
            $this->sex=$sex;
            $this->school = $school;
        }
         
        function study(){
            echo $this->age;
            echo $this->name.":我在{$this->school}学习<br>";
        }
         
        /*
            覆盖父类的say(),子类中重载的方法,不能低于父类中的访问权限(子类可以放大权限,但不能缩小权限)
            父类中是public function say(){}
            子类中变成了private function say(){}
            private function say(){
                echo "{$this->name}:我在{$this->school}学习呢,请不要打扰我<br>";
            }
            这时候会报错Fatal error: Access level to Student::say() must be public (as in class Person
        */
         
        public function say(){
            parent::say();
            echo "{$this->name}:我在{$this->school}学习呢,请不要打扰我<br>";
        }
    }
     
    #$student = new Student;
    #$student->school="北京大学附属中学";
    #$student->name="haha";
    #$student->age=32;
    #$student->study();
    #$student->say();
     
    $student2 = new Student("李会东",24,"男","北京大学");
    #echo $student2->school;
    $student2->say();
?>

 

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1061541.htmlTechArticlephp 继承 ?php/*继承性 1.面向对象的三大特性之一 2.开放性,可扩充性 3.增加代码的重用性 4.提高了软件的可维护性 php 使弱类型语言,没有重...
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.