为什么需要继承?
<?php //开发一套学生管理系统(小学生pupil,大学生,...) //父类 class Stu{ public $name; protected $age; protected $grade; public function showInfo(){ echo $this->name."||".$this->age; } } //子类 class Pupil extends stu{ //小学生 public function testing(){ echo "小学生考试"; } } class Graduate extends stu{//研究生 public function testing(){ echo "研究生考试"; } }//创建学生$stu1=new Pupil();$stu1->testing();$stu1->name="www.bianceng.cn";$stu1->showInfo();echo "<br />";//创建研究生$stu2=new Graduate();$stu2->testing();$stu2->name="hello";$stu2->showInfo();?>
从上面代码可以看出,所谓继承,就是一个子类通过 extends 父类,把父类的public/protect属性和方法继承下来,但不能继承父类的private属性和方法。
继承的基本语法:
class 类名 extends 父类名{
//子类需要的属性和方法
}
使用继承的注意事项:
1)子类能把父类的public/protect属性和方法继承下来,但不能继承父类的private属性和方法
<?php//父类的什么属性和方法被子类继承class A{ public $n1=1; protected $n2="www.bianceng.cn"; private $n3=20; public function test1(){ echo "test1()"; } public function test2(){ echo "test2()"; } public function test3(){ echo "test3()"; }} class SubClass extends A{ function show(){ echo "<br />".$this->n2; // } } //创建SubClass对象 $sub1=new SubClass(); $sub1->test1(); echo "<br />"; $sub1->test2(); echo "<br />"; $sub1->test3(); echo "<br />".$sub1->n1; $sub1->show();?>
2)php继承是单一继承,即一个子类不能直接继承两个父类
可以通过继承两次的方法达到继承多个类的目的。
<?php class A{ } class B extends A{ } class C extends B{ //通过两次继承,C继承了A和B两个类 }?>
3)当创建子类对象的时候,默认不会自动调用父类的构造方法。
<?php class A{ //构造方法 public function __construct(){ echo "A__construct"; } } class B extends A{ function __construct(){ echo "B__construct"; } } //创建对象实例 $b=new B(); //输出B__construct?>
4)如果希望在子类中调用父类的构造方法或者其它方法(public/protected),可以这样处理(了解即可):
(1)类名::方法名();
(2)parent::方法名();
例:
<?php class A{ //构造方法 public $n1=90; public function __construct($n1){ $this->n1=$n1; echo "A__construct"; } } class B extends A{ function __construct(){ echo "B__construct"; //显式的调用父类的方法 //A::__construct(900); parent::__construct(900); } } //创建对象实例 $b=new B(); //输出B__construct echo "<br />".$b->n1; //输出900?>
5)如果子类(派生类)中的方法与父类(基类)中的方法相同,称之为方法重写/方法覆盖。
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索继承
, 方法
, 面向对象编程
, 属性
, 子类
, 类名
, public
, 类的继承
, 多个相同类的属性
, pb9继承方法
, 子类继承父类
, 继承性
php继承
面向对象编程 继承、js面向对象编程 继承、php面向对象编程、php面向对象编程思想、php面向对象编程实例,以便于您获取更多的相关知识。