封装、继承、多态
封装性
把敏感数据封装在类中,不受外界访问。
将某一功能的方方面面封装成一个工具类;例如封装一个数据库工具类,提供数据库的所有常用功能,在类外不能再使用“mysql_*”函数。
继承性:
如果一个B类有了A类的所有特征信息,那么就认为B类继承A类。
继承是为了实现功能的增加和扩展。
多态性:
在面向对象的理论 中,多态性的一般定义为:同一个操作作用于不同的类的实例,将产生不同的执行结果。
方法重载和方法重写
方法重载:
在一个类中有两个同名方法。(PHP不支持,没用)
方法重写:
在子类中有和父类同名的方法,是为了实现功能的增加和扩展。
方法重写的要求:
子类方法名必须与父类方法名相同。
子类的方法参数个数必须与父类方法参数个数个数相同。
子类的方法类型必须与父类方法类型一致。(静态方法/成员方法)
子类中方法的权限不能低于父类方法的权限,例如,父类为public,子类必须为public;父类为protected,子类必须为public/protected
所有方法都可重写,但构造方法重写没有参数个数要求<?php
header("Content-Type:text/html;charset=utf-8");
class Student{
protected static function showInfo($name,$age){
return "{$name} is {$age}";
}
}
class BeijingStudent extends Student{
static public function showInfo($name2,$age2){
$str = "test1<br/>";
$str .= parent::showInfo($name2,$age2);
echo $str;
}
}
BeijingStudent::showInfo('qwe',12);