Correcting teacher:天蓬老师
Correction status:qualified
Teacher's comments:很多没有总结到, 不必着急的, 咱们还没有学完
序号 | 名称 | 关键字 | 类外部 | 类内部 | 类继承上下文 | 描述 |
---|---|---|---|---|---|---|
1 | 公开成员 | public |
允许 | 允许 | 允许 | 默认 |
2 | 受保护成员 | protected |
禁止 | 允许 | 允许 | 封装 |
3 | 私有成员 | private |
禁止 | 允许 | 禁止 | 封装 |
public
这个就是没有限制的,公有的
<?php
//public公共的
class Person{
public $name = 'misszhu'; //此处不定义默认值,那么默认是空null
public $age = 18;
public function say() {
echo '我的名字是'. $this->name. '今年'. $this->age.'岁';
}
}
$misszhu = new Person();
// $misszhu -> name='misszhang';//public这种情况下名字是可以去更改的
//echo $misszhu -> say();
//在public下$name/$age都是可以在外部更改的
$misszhu -> name='misszhang';
$misszhu -> age='21';
echo $misszhu -> say();
<?php
//类的继承
//子类共享父类的属性和方法(protected/public)
//php中只支持单继承
class Person{
public $name; //此处不定义默认值,那么默认是空null
public $age;
public function __construct($name, $age)
{
$this->name=$name;
$this->age=$age;
}
public function say()
{
echo '我的名字是'. $this->name. '今年'. $this->age.'岁';
}
public function demo()
{
echo '这里是demo';
}
}
class Chiness extends Person{
protected $sex;
public function __construct($name, $age, $sex)
{
$this->name=$name;
$this->age=$age;
$this->sex=$sex;
}
//也是可以重写的
}
$misszhu = new Chiness($name='misszhang', $age='19', $sex='女');
$misszhu -> say();
var_dump($misszhu);
protected
<?php
//protected:受保护的
class Person{
public $name = 'misszhu'; //此处不定义默认值,那么默认是空null
protected $age = 18;
public function say() {
echo '我的名字是'. $this->name. '今年'. $this->age.'岁';
}
}
$misszhu = new Person();
$misszhu -> name='misszhang';//public这种情况下名字是可以去更改的
$misszhu -> age='28';//受保护的外部不能更改,会报错
$misszhu -> say();
<?php
//类的继承
//子类共享父类的属性和方法(protected/public)
//php中只支持单继承
class Person{
public $name='misszhu'; //此处不定义默认值,那么默认是空null
protected $age='18';
public function say()
{
echo '我的名字是'. $this->name. '今年'. $this->age.'岁';
}
public function demo()
{
echo '这里是demo';
}
}
class Chiness extends Person{
}
$misszhu = new Chiness();
//$misszhu -> age = 21;
//$misszhu -> eat();
$misszhu -> say();
<?php
//类的继承
//子类共享父类的属性和方法(protected/public)
//php中只支持单继承
class Person{
public $name='misszhu'; //此处不定义默认值,那么默认是空null
protected $age='18';
public function say()
{
echo '我的名字是'. $this->name. '今年'. $this->age.'岁';
}
public function demo()
{
echo '这里是demo';
}
}
class Chiness extends Person{
}
$misszhu = new Chiness();
$misszhu -> age = 21;
//$misszhu -> eat();
$misszhu -> say();
<?php
//类的继承
//子类共享父类的属性和方法(protected/public)
//php中只支持单继承
class Person{
public $name='misszhu'; //此处不定义默认值,那么默认是空null
private $age='18';
public function say()
{
echo '我的名字是'. $this->name. '今年'. $this->age.'岁';
}
public function demo()
{
echo '这里是demo';
}
}
class Chiness extends Person{
public function eat(){
echo $this->age;
}
}
$misszhu = new Chiness();
$misszhu -> say();
<?php
//类的继承
//子类共享父类的属性和方法(protected/public)
//php中只支持单继承
class Person{
public $name='misszhu'; //此处不定义默认值,那么默认是空null
private $age='18';
public function say()
{
echo '我的名字是'. $this->name. '今年'. $this->age.'岁';
}
public function demo()
{
echo '这里是demo';
}
}
class Chiness extends Person{
public function eat(){
echo '我的名字是'. $this->name. '今年'. $this->age.'岁';
}
}
$misszhu = new Chiness();
$misszhu -> eat();
序号 | 名称 | 关键字 | 具体实现 |
---|---|---|---|
无 | 抽象成员 | abstract |
无 |
<?php
abstract class Person{
abstract function chiness($name,$age,$money);
}
class Person1 extends Person{
function chiness($name,$age,$money)
{
echo "我的名字是:" . $name, "我现在是:" . $age. "岁了", "我兜兜里面有:" . $money."元";
}
}
class Person2 extends Person{
function chiness($name,$age,$money)
{
echo "我的名字是:" . $name, "我现在是:" . $age. "岁了", "我兜兜里面有:" . $money."元";
}
}
$chiness1 = new Person1();
$chiness2 = new Person2();
$chiness1->chiness('zhu老师','42','1000000');
echo '<hr/>';
$chiness2->chiness('小zhou','27','1');
<?php
class Person{
public $name = 'misszhu'; //此处不定义默认值,那么默认是空null
public $age = 42;
public function say() {
echo '我的名字是'. $this->name. '今年'. $this->age.'岁';
}
}
class Chiness extends Person{
public function sex()
{
//调用父类的方法,如果自己有方法就用自己的方法
parent::say();
}
//类的重载,你如果觉得父类的不够先进,你也可以自己重新写
public $eat='肉';
public function eat()
{
echo '我的名字是'. $this->name. '今年'. $this->age.'岁', '我的爱好是喜欢吃'.$this->eat;
}
}
$misszhu = new Chiness();
echo $misszhu -> sex();
echo '<hr>';
echo $misszhu -> eat();
<?php
interface iUser {
const NAME = '接口类';
public static function myfun(); //抽象方法
}
class User extends iUser
{
protected static $name = '小zhou';
public static function myfun()
{
return $this->name.'正在学习'.iUser::NAME;
}
}
echo User::myfun();
有点绕,很多还没有总结到