PHP面向对象 封装与继承
Posted 程昱仲德
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP面向对象 封装与继承相关的知识,希望对你有一定的参考价值。
知识点:
php封装三个关键词:
一、public 公有的,被public修饰的属性和方法,对象可以任意访问和调用
二、private 私有的,被private修饰的属性和方法,只能在类内部的方法可以进行调用,或者被子类重写后用public才可以随意调用
三、protected 受保护的,被protected修饰的属性和方法,在父类和子类的方法都可以访问调用,不支持对象外部访问调用
PHP继承概念
PHP子类可以通过extends继承父类的属性和方法,再原有基础上添加或者重写属性方法,注意:PHP是单继承,即一个父类只能有一个子类,如果想一个父类被多个子类继承,需要使用接口。
一、子类继承父类的属性和方法,并非全部,被private修饰的方法和属性无法继承
二、子类方法或属性名如果与父类方法名一致,则进行了对远方法和属性的重写
三、关键词final 修饰的类名或方法无法被继承或重写
代码:
<?php
header("Content-type:text/html;charset=utf-8");
error_reporting(E_ALL);
class people{
public $name;
public $age;
public function __construct($name,$age){
$this->name = $name;
$this->age = $age;
}
public function tellname(){
echo \'我的名字是\'.$this->name;
}
private function tellage(){
echo \'我是年龄是\'.$this->age;
}
}
$zhangsan = new people(\'张三\',20);
$zhangsan->tellname();//输出成功
//$zhangsan->tellage();提示致命错误
echo "<br>";
class student extends people{
public $class;
public $sex;
public function tellname(){
echo \'大家好,我的名字是\'.$this->name;
}
public function tellage(){
echo \'我的岁数是\'.$this->age;
}
}
$xiaoming = new student(\'小明\',15);
$xiaoming->tellname();//输出成功
$xiaoming->tellage();//重写后输出成功
?>
页面提示:
以上是关于PHP面向对象 封装与继承的主要内容,如果未能解决你的问题,请参考以下文章