继承性: 1.开放性、可扩充性 2.增加代码的重用性 3.提高软件的可重用性 4.就是用子类扩展父类 5.php属于单继承,一个类只能有一个父类但有多个子类,c++属于多继承 父类--基类 子类--派生类 一。类继承的应用 1.声明一个子类,使用extends关键字 2.子类可以从父类,继承所有内容 3.类之间的层次关系 二。访问类型控制 1.虽然子类可以从父类中继承所有内容,但private的成员,子类中也不能用,只能在本类中用 2.如果想,封装时,既可以让自己的类用又可以让子类使用但不能让外部使用,把private -->protected 三。子类中重载父类的方法 1.java中函数名相同,但参数个数或类型不同 function add(int a,int b){ return a+b; } function add(float a,float b){ return a+b; } function add(int a, int b,int c){ return a+b+c; } 2.子类可以声明和父类相同的方法名,即子类可以覆盖父类的方法 3.子类的方法对父方法的扩展,在子类中调用父类中被覆盖的方法: 对象->成员 类::成员 父类名::方法名() parent::方法名()//在父类名字改变时在子类中不用改变 4.在子类中编写构造方法,如果父类中也有构造方法,一定要去调用一个父类的构造方法 注意:子类中重载的方法,不能呢个低于父类中的访问权限,只能放大权限,不能缩小权限 如果父类中是共有的,子类中只能是共有的,如果父类中是私有的,子类中可以是私有的,共有的,保护的 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->age},我的性别{$this->sex}"; } function eat(){ } function run(){ }}class Student extends Person{ var $school; function __construct($name,$age,$sex,$school){ parent::__construct($name,$age,$sex);//这样在父类中有的功能子类也会有 $this->school=$school; } function study(){ echo "{$this->name}在学习.<br>"; } function say(){ echo "我所在的学校是:{$this->school}"; }}$s=new Student("lisi",20,"nan","hehedaxue");$s->say();$s->study(); |
|