继承
1.子类使用extends继承父类,可以将父类所有内容继承过来
2.private 只能自己用,子类都无法使用
3.protected这个是保护的权限,只能是自己和自己的子类使用的成员,外部不可使用
4.public 公开
重载
继承中的重载(覆盖):在子类中可以写和父类同名的方法
parent::访问父类中被覆盖的方法
重要:只要是子类的构造方法,去覆盖父类中的构造方法,一定要在子类的最上面调用一下父类被覆盖的方法
权限问题:子类只能大于或等于父类的权限,不能小于
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->sex}";
}
function eat(){
}
function run(){
}
}
class Student extends Person{
var $school;
function__construct($name,$age,$sex,$school){
parent::__construct($name,$age,$sex,$school);
$this->school = $school;
}
function study(){
}
//重载
public function say(){
parent::say();
echo "我在的学校";
}
}
class Teacher extends Person{
var $name;
var $age;
var $sex;
var $dw;
function teach(){
}
}
关键字
1.instanceof 对象是不是某个类
2.在PHP中,final不定义常量,所以不能使用final修饰成员属性
①final可以修饰类 ---这个类不能去扩展,不能有子类,也就是最终的类
②final可以修饰方法---这个方法,就不能在子类中覆盖
3.static可以修饰属性和方法,不能修饰类,
①使用static修饰成员属性,存在内存的初始化静态段。
②可以被所有同一个类的对象使用
③第一个用到类(类名第一次出现),类在加载到内存时,就已经将静态的成员加到了内存
④静态的成员一定要用类来访问
Person::$country;
⑤.self可以在类中的方法中,代表自己的类
⑥脚本一旦加载,直到脚本释放才结束
⑦在静态的方法中,是不能访问非静态的成员的
⑧只要是能使用静态的环境下声明方法,就最好使用静态方法效率
static function say(){
echo"我的名字是:“self::$name.”<br>";
}
4.const
常用define定义常量
define("常量名","值");
const 修饰的成员属性为常量,只能修饰成员属性
类中
1.常量建议使用大写,不能使用$
2.常量一定要在声明时就给好初值
3.常量的访问方式和static的访问方式相同,但只能读
①在类外部使用 类名::常量名
②在类的外部使用 self::常量名
class Demo{
const SEX = "男";
static function say(){
echo self::SEX."<br>";
}
}
Demo::say();
//echo Demo::SEX;
网友评论