Final关键字
作用:
1、如果父类中的方法被声明为 final,则子类无法覆盖该方法。如果一个类被声明为 final,则不能被继承。
2、属性不能被定义为 final,只有类和方法才能被定义为 final。
3、用法:直接在类或者方法前加final关键字。
含义:
1、解决代码重复,把重复的代码写在一个文件夹中,让其他PHP文件调用自动加载。
2、解决PHP文件过多 include等引入PHP过于庞大造成负担。<?php
//final class dog{//如果在类前面加final,它就不会被子类所继承
class dog{
//var $name;
//private:私有的 把var 改成private
//private $name; 外部(类之外)是调用不出来访问不了的(包括子类也是访问不了)
//protected $name; //也是(类之外)外部是调用不出来访问不了的(这个子类可以访问)
//public $name; //public 公开的 这个是可以访问
var $name; //如果var声明,默认的是public
//php 将所有以__(两个下划线)开头的类方法保留为魔术方法。
//所以在定义类方法时,除了魔术方法,建议不要以__为前缀
//construct 构成;建造 构造函数声明必须是__construct()
function __construct(){//这里报错原因 construct($n)里面的$n,当我们调用子类里面的构造函数的时候
//其实它是调用一个不带参数的构造器,双会调用副类里面不带参里的构造器,这个时候呢,副类里面我们构造函数里定义了
//构造器,这个构造器里面呢又有一个参数,所以这里面就有会问题。
//为了证明它是调用到构造器的,我们打一行文字来看一下
echo "调用到这里了,看一下";
//$this->name = $n;
}
function bark(){
echo $this->name."wang";
}
}
//habadog继承dog 右以用关键字extends来声明继承关系
class habadog extends dog{ //继承类dog的属性和方法过来
}
$haba = new habadog();
$haba ->name="哈巴狗";
echo $haba->bark();
//输出结果 哈巴狗wang
//$mydog = new dog("zhangsan");
//$mydog->name = "facai";
//$mydog->bark();
?>