<?php
//1.将类封装时,一般安全起见,多用于受保护属性protected来进行封装
//2.子类调用父类的方法
// (1).父类方法属性应采用public或受保护属性protected
// (2).私有属性private 只能在本类中访问
//3.子类不需要父类方法时 可进行重写的方法来进行覆盖
//4.子类覆盖了父类方法或字段时,又要调用怎么办?
// 调用方法 父类名::方法() or parent::方法()
//5.final 关键字 可防止类被继承,独立的类不想被其他类集成使用时,必须使用这关键字,单独类,最好都加上这个关键字
//关键字
// 1.public 公共属性 类本身和子类都可访问
// 2.private 私有属性 类本身可以访问
// 3.protected 受保护属性 类本身和子类都可访问(一般封装时为了安全起见多用于这个属性)
// 4.extends 继承(php不支持多层继承,一个类只能继承一个基类)
header('content-type:text/html;charset="utf-8"');
//定义一个父类
class Computer
{
//public 公共属性,父类子类都可以调用
//private 私有属性,无法被子类继承,此时就应用受保护的修饰来封装
//protected 受保护属性 父类子类都可调用
public $name = 'gaofei';
//定义一个方法
public function say()
{
return "my name is ".$this->name;
}
}
//定义一个子类
class NoteComputer extends Computer
{
//子类不需要父类的字段和方法,可采用重写的方法覆盖掉父类等等字段
public $name = 'james';
public function say()
{
echo Computer::say();
echo "my name is ".$this->name;
//调用已经被覆盖的父类方法
}
}
//类的实例化
$obj = new NoteComputer();
//echo $obj->say();
//加上关键字final 此时子类不能继承父类。
final class Pad
{
public $data = '123';
}
class Pad_pro extends Pad
{
public function say()
{
return $this->data;
}
}