封装性,继承性,多态性---和.net相同
抽象---对应编程中的需求分析
封装---实体类和方法类的使用(保证数据和操作安全)
1.访问修饰符
public protected private
2.方法的默认访问修饰符是public,
变量默认是private。(规范必须指定)
注意:php4中的var $a (声明public的方法不推荐)
3.php
类中的成员方法之间的调用(一般不会出现吧,类本身是对操作的继承,而不是操作之间的调用)
$this->方法名;
---和.net的不同
4.魔术方法
---操作类中私有和保护成员(只做知识点了解,已废弃使用)破坏封装性,统一操作不方便
执行效率低
public function
__set($pro_anme,$pro_val)
{
$this->pro_name=$pro_val;
}
public
function __get($pro_name)
{
if(isset($pro_name))
{
return $this->pro_name;
else{
return
null;
}}}
继承(单继承)--提高代码的复用度,可维护性。 在概念上和.net相同
class Pupil
extends Stu
{
//自己的属性和方法
function show()
{
echo
$this->n1; //protected被继承后仍然是protected
$this->test();
父类名称::父类方法();//调用父类方法(一般用于修改父类的变量)
parent::父类方法();//调用父类方法(parent不能大写)
}
}
单直接继承和多重继承
创建子类对象,默认不会自动调用父类的构造函数--和.net相同
类内,类外,继承的范围理解。
多态---重载
---和其他语言的重载存在较大差别(不推荐使用)
利用魔术函数重载
__call
当一个对象调用一个不存在的方法时,会自动调用__call,传入不存在的方法名和参数
function __call($method
,$p){
if($method="overlode"){
if(count($p)==1){
$this->overlode1($p);
}else
if(count($p)==2){
$this->overlode2($p);
}
}
$a =new
A();
$a->test(1);
重写---逻辑上的重写--实质是查找函数时,先从子类查找,然后再父类中寻找。
重写---父类,子类的重写函数的访问权限必须满足
子类重写方法的权限>=父类的重写方法的访问权限。
同时必须注意权限对类外调用影响。
原文:http://www.cnblogs.com/Watcher/p/3576970.html