|
|
类继承的应用- <?php
- class person{
- public $name;
- public $age;
- public $sex;
- public function __construct($name, $age, $sex){
- $this -> name = $name;
- $this -> age = $age;
- $this -> sex = $sex;
- }
- public function say(){
- echo "say...";
- }
- public function eat(){
- echo "eat...";
- }
- public function run(){
- echo "run...";
- }
- }
- class teacher extends person{
- public function teach(){
- echo "teach...";
- }
- }
- class student extends person{
-
- public function learn(){
- echo "learn...";
- }
- }
- $teacher = new teacher("zhangsan",30,'nan');
- //$teacher -> say();
- $teacher -> teach();
- $teacher -> learn();
- echo "<hr />";
- $student = new student("lisi",18,'nv');
- //$student -> run();
- $student -> learn();
复制代码- <?php
- //PHP是单继承 一个类只能有一个父类
- //一个类可以有多个子类
- //支持多层继承
- class A{
- public $name = "zhangshan";
- public $age = 20;
- public function say(){
- return $this -> name;
- }
- }
- class B extends A{
- }
- class C extends B{
- }
- $b = new B();
- var_dump($b);
- echo $b -> say();
- echo "<hr />";
- $c = new C();
- var_dump($c);
- echo $c -> say();
复制代码 访问类型的控制
- <?php
- class person{
- public $name;
- private $age;
- protected $sex;
- public function __construct($name,$age,$sex){
- $this -> name = $name;
- $this -> age = $age;
- $this -> sex = $sex;
- }
- public function p1(){
- echo "p1";
- }
- private function p2(){
- echo "p2";
- }
- protected function p3(){
- echo "p3";
- }
- public function test1(){
- //echo $this -> name; //公有的成员属性在类的内部可以访问
- //echo $this -> age; //私有的成员属性在类的内部可以访问
- //echo $this -> sex; //受保护的成员属性在类的内部可以访问
- //$this -> p1(); //公有的成员方法在类的内部可以访问
- //$this -> p2(); //私有的成员方法在类的内部可以访问
- //$this -> p3(); //受保护的成员方法在类的内部可以访问
- }
- }
- class student extends person{
- public function test(){
- // echo $this -> name; //公有的成员属性在子类中可以访问
- //echo $this -> age; //私有的成员属性在子类中不可以访问
- //echo $this -> sex; //受保护的成员属性在子类中可以访问
- //$this -> p1(); //公有的成员方法在子类中可以访问
- //$this -> p2(); //私有的成员方法在子类中不可以访问
- //$this -> p3(); //受保护的成员方法在了类中可以访问
- }
- }
- $person = new person("zhangsan",18,"nan");
- //echo $person -> name; //公有的成员属性在类的外部可以访问
- //echo $person -> age; //私有的成员属性在类的外部不可以直接访问
- //echo $person -> sex; //受保护的成员属性在类的外部不可以直接访问
- //$person -> p1(); //公有的成员方法在类的外部可以访问
- //$person -> p2(); //私的有成员方法在类的外部不可以直接访问
- //$person -> p3(); //受保护的成员方法在类的外部不可以直接访问
- //
- //$student = new student("lisi",20,"nv");
- //$student -> test();
- //
- $person -> test1();
复制代码 子类中重载父类方法
- <?php
- class person{
- public $name;
- public $age;
- public $sex;
- public function __construct($name, $age, $sex){
- $this -> name = $name;
- $this -> age = $age;
- $this -> sex = $sex;
- }
- public function say(){
- echo "我的名字是:{$this -> name},我的年龄是:{$this -> age},我的性别是:{$this -> sex}";
- }
- }
- class teacher extends person{
- public $teach;
- public function __construct($name, $age, $sex, $teach){
- parent::__construct($name, $age, $sex);
- $this -> teach = $teach;
- }
- //重写:就是声明 一个与父类中同名的方法
- public function say(){
- //重载:parent::父类中的方法名
- parent::say();
- echo ",我教的学科是:{$this -> teach}";
- }
- }
- class student extends person{
- public $school;
- public function __construct($name, $age, $sex, $school){
- parent::__construct($name, $age, $sex);
- $this -> school = $school;
- }
- public function say(){
- parent::say();
- echo ",我所在的学校是:{$this -> school}";
- }
- }
- $teacher = new teacher("张三", 30, '男', '数学');
- $teacher -> say();
- echo "<hr />";
- $student = new student("李四", 18, '女', '北大');
- $student -> say();
复制代码
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|