继承性:
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}在学习.
";
}
function say(){
echo "我所在的学校是:{$this->school}";
}
}
$s=new Student("lisi",20,"nan","hehedaxue");
$s->say();
$s->study();