继承性:

1.开放性、可扩充性

2.增加代码的重用性

3.提高软件的可重用性

4.就是用子类扩展父类

5.php属于单继承,一个类只能有一个父类但有多个子类,c++属于多继承

父类–基类

子类–派生类

一。类继承的应用

1.声明一个子类,使用extends关键字

2.子类可以从父类,继承所有内容

3.类之间的层次关系

二。访问类型控制

1.虽然子类可以从父类中继承所有内容,但private的成员,子类中也不能用,只能在本类中用

2.如果想,封装时,既可以让自己的类用又可以让子类使用但不能让外部使用,把private –>protected

三。子类中重载父类的方法

1.java中函数名相同,但参数个数或类型不同

function add(int a,int b){

return a+b;

}

function add(float a,float b){

return a+b;

}

function add(int a, int b,int c){

return a+b+c;

}

2.子类可以声明和父类相同的方法名,即子类可以覆盖父类的方法

3.子类的方法对父方法的扩展,在子类中调用父类中被覆盖的方法:

对象->成员 类::成员

父类名::方法名()

parent::方法名()//在父类名字改变时在子类中不用改变

4.在子类中编写构造方法,如果父类中也有构造方法,一定要去调用一个父类的构造方法

注意:子类中重载的方法,不能呢个低于父类中的访问权限,只能放大权限,不能缩小权限

如果父类中是共有的,子类中只能是共有的,如果父类中是私有的,子类中可以是私有的,共有的,保护的

class Person {
     var $name;
     var $age;
     var $sex;
         
      function __construct($name,$age,$sex){
         $this->name=$name;
         $this->age=$age;
         $this->sex=$sex;
      }      

      function say(){
         echo "我的名字:{$this->name},我的年龄:{$this->age},我的性别{$this->sex}";
      }

      function eat(){

      }

      function run(){

      }
}

class Student extends Person{
       var $school;
    
       function __construct($name,$age,$sex,$school){
           parent::__construct($name,$age,$sex);//这样在父类中有的功能子类也会有
           $this->school=$school;
       }  
    
       function study(){
            echo "{$this->name}在学习.<br>";
       }
       function say(){
            echo "我所在的学校是:{$this->school}";
       }


}

$s=new Student("lisi",20,"nan","hehedaxue");
$s->say();
$s->study();

发表评论

电子邮件地址不会被公开。 必填项已用*标注