php中类与对象的作用是什么?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
<强>简介强>
在php中,类型的继承使用扩展关键字,而且最多只能继承一个父类,php不支持多继承。
class MyClass , {, ,public dat 美元;=,0;, ,public function  __construct (dat美元),{, 这→美元才能dat =, dat;美元, }大敌; ,public function  getDat (), {, return 才能;“这→美元dat \ n",, }大敌; }, class MySubClass  extends MyClass {, ,public function  getDat (), {, return 才能“dat:, $ this→dat \ n",, }大敌; }, a 美元;=,new MyClass (3),, b 美元;=,new MySubClass; (4), echo 美元→getDat ();,,//, 3, echo b→美元getDat ();,,//, dat:, 4
<强>方法覆盖强>
包括构造函数在内,子类可以重新定义同名的类方法以覆盖父类方法。覆盖时遵循以下规则:
1。除构造函数之外,其他函数在覆盖时,函数的参数列表必须相同
2。包括构造函数在内,方法被覆盖后,调用子类方法时并不会自动调用父类方法
3。如果父类要禁止方法被子类覆盖,可以使用最后来声明方法,这时如果子类仍要覆盖父类方法,将会出错
class MyClass , {, ,private name 美元;=,““, ,public num 美元;=,0;, ,public str 美元;=,““, ,public function  __construct(名字),{, 这→美元才能name =,名称;美元, 这个美元才能→num =,, 100; 这个美元才能→str =,“none",, }大敌; ,public function  getName (), {, return 才能;这→美元名字,, }大敌; }, class MySubClass  extends MyClass {, ,public function  __construct(名称、美元,美元str), {, 父:才能__construct($);,,,,//,调用父类方法, 这个美元才能→num =,“0”;, 这→美元才能str =, str;美元, echo 才能;父:getName()干净\ n",,,,,//,调用父类方法, }大敌; ,public function  getName (), {, return 才能;父:getName()的管理者;$ this→str \ n",,//,调用父类方法, }大敌; }, $ b =, new MySubClass (“myName",,真的),,,//,myName echo b→美元getName (),,,,,,,,,,,//, myName1 class MyClass , {, ,final public function  getName (), {, }大敌; }
<强>属性重定义强>
在子类中,可以访问父类中的公共和保护属性成员,除非重定义了同名的自有属性,这时,父类中的属性将无法访问。
方法则不同,子类对方法进行覆盖后,仍然可以访问到父类方法。
class MyClass , {,=,public a 美元;1;,=,protected b 美元;2,,=,private c 美元;3,, ,public function f1 (), {, echo 才能“MyClass  f1 \ n",, echo 才能“\ $ a:这→美元,,\ b:美元$ this→b;, $ c: \ $ this→c; \ n",, }大敌; ,protected function  f2 (), {, echo 才能“MyClass  f2 \ n",, echo 才能“\ $ a:这→美元,,\ b:美元$ this→b;, $ c: \ $ this→c; \ n",, }大敌; ,private function  f3 (), {, echo 才能“MyClass  f3 \ n",, }大敌; }, class MySubClass  extends MyClass , {, ,public b 美元;=,22,, ,public c 美元;=,33岁,, ,public function f1 (), {, echo 才能“MySubClass  f1 \ n",,//才能,继承到父类中美元的一个属性,直接使用, echo 才能“\ $ a:这→美元,,\ b:美元$ this→b;, $ c: \ $ this→c; \ n",,//,才能调用父类中的同名方法, 父母才能:f1 (),,//才能,继承到父类中的f2()方法,直接使用, 这个美元才能→f2 ();, }大敌; ,//父类的f3()是私有的,这里的定义与父类无关, ,public function  f3 (), {, echo 才能“MySubClass  f3 \ n",, }大敌; }, $ b =, new MySubClass, b→美元f1 (); echo “\ n",,/*, MySubClass f1 答:美元1;,$ b: 22;, $ c: 33;, MyClass f1 答:美元1;,$ b: 22;, $ c: 3;, MyClass f2 答:美元1;,$ b: 22;, $ c: 3;, */, b→美元f3 (); echo “\ n",,/*, MySubClass f3 */php中类与对象的作用是什么