Correcting teacher:天蓬老师
Correction status:qualified
Teacher's comments:总结的不错
require 'Loader.php';
//"Person(人类)抽象类作父类,Teacher(老师)类, Student(学生)类为子类";
//"老师类, 学生类,通过继承父类,都有通用属性name、age,和show()方法";
//"------老师类通过实现iTalk接口,拥有talk()说英文,这个独有方法";
//"------学生类通过实现iPlay接口,拥有playGame()玩游戏,这个独有方法";
//"------老师类通过使用use trait T2,拥有skill(),独有新技能";
//"------学生类通过使用use trait T1,拥有skill(),独有新技能";
$tec = new Teacher("刘德华", 55);
$stu = new Student("贾玲", 30);
echo "------老师类,例程演示结果-----------------------------", "<br>";
$tec->show();
$tec->talk();
$tec->skill();
echo "------学生类,例程演示结果-----------------------------", "<br>";
$stu->show();
$stu->playGame();
$stu->skill();
//人类,抽象类
abstract class Person {
// 类成员: 属性, 方法
// 属性: 变量
protected $name;
protected $age;
// 构造方法
public function __construct($name, $age)
{
$this->name = $name;
$this->age = $age;
}
// 抽象方法
abstract public function show();
}
require "Loader.php";
class Teacher extends Person implements iTalk {
// 类成员: 属性, 方法
// 属性: 变量, 构造方法, 继承父类的
//学生类,老师类都有的show()方法
public function show()
{
echo "我是一名老师,我叫{$this->name},我已经{$this->age}岁了...", "<br>";
}
//重写接口iTalk,talk()方法,是老师类特有方法
public function talk()
{
echo "我可以用". Teacher::LANGUAGE . "进行流利沟通...", "<br>";
}
//use trait T2,让老师类新方法skill(),打印“8级证书...”
use T2;
}
trait T2
{
public function skill()
{
echo "我已经拥有国家钢琴等级,专业8级证书...", "<br>";
}
}
require 'Loader.php';
class Student extends Person implements iPlay {
// 类成员: 属性, 方法
// 属性: 变量, 构造方法, 继承父类的
//学生类,老师类都有的show()方法
public function show()
{
echo "我是一名学生,我叫{$this->name},我已经{$this->age}岁了...", "<br>";
}
//重写接口iPlay,playGame()方法,是学生类特有方法
public function playGame()
{
echo "我玩". Student::GAME . "游戏,很厉害的...", "<br>";
}
//use trait T1,让学生类有新方法skill(),打印“跆拳道...”
use T1;
}
trait T1
{
public function skill()
{
echo "我的刚学的技能是:跆拳道...", "<br>";
}
}
interface iTalk {
const LANGUAGE = "英语";
public function talk();
}
interface iPlay {
const GAME = "超级玛丽奥";
public function playGame();
}