继承与多态:
abstract class Animal
{
abstract public function roar();
public function speak(){
echo "I can speak!<br/>";
}
}
class Pig extends Animal
{
public function roar()
{
echo "I want to roar as honk!<br/>";// TODO: Implement roar() method.
}
public function speak()
{
parent::speak();
echo "I can speak honk!<br/>";// TODO: Change the autogenerated stub
}
}
class Dog extends Animal
{
public function roar()
{
echo "I want to roar as 汪!<br/>";// TODO: Implement roar() method.
}
public function speak()
{
parent::speak();
echo "I can speak as 汪!<br/>";// TODO: Change the autogenerated stub
}
}
class Monkey extends Animal
{
public function roar()
{
echo "I can roar as 嗷呜——<br/>";// TODO: Implement roar() method.
}
public function speak()
{
parent::speak();
echo "I can speak as 嗷呜——<br/>";// TODO: Change the autogenerated stub
}
}
function test(Animal $animal){
$animal->roar();
$animal->speak();
}
test(new Pig());
test(new Dog());
test(new Monkey());
/**
* Created by PhpStorm.
* User: HP
* Date: 2017/10/12
* Time: 14:49
接口作业:
interface iTalkable
{
public function talk();
}
interface iPlayable
{
public function play();
}
abstract class People implements iTalkable,iPlayable{
public function talk()
{
echo "Would you like talk with me?<br/>";// TODO: Implement talk() method.
}
public function play()
{
echo "Would you like play with me?<br/>";// TODO: Implement play() method.
}
}
class Teacher extends People{
public function talk()
{
parent::talk();
echo "Yes,I do.<br/>";// TODO: Change the autogenerated stub
}
public function play()
{
parent::play();
echo "Yes,I'd like to!<br>";// TODO: Change the autogenerated stub
}
}
$a = new Teacher;
var_dump($a instanceof Teacher);
echo "<br/>";
function test(People $people){
$people->play();
$people->talk();
}
test(new Teacher());
/**
* Created by PhpStorm.
* User: HP
* Date: 2017/10/12
* Time: 16:11
*/```
trait作业:
```<?php
trait MyTrait{
public function justTalk(){
echo "speak from ".__CLASS__."<br/>";
}
}
class MyClass1{
public function speak(){
echo "speak from myclass1" . PHP_EOL;
}
use MyTrait;
}
class MyClass2{
public function speak(){
echo "speak from myclass2" . PHP_EOL;
}
use MyTrait;
}
$myClass1 = new MyClass1();
$myClass1->justTalk();
//output : speak from myClass1
$myClass2 = new MyClass2();
$myClass2->justTalk();
//output : speak from myClass2
/**
* Created by PhpStorm.
* User: HP
* Date: 2017/10/12
* Time: 16:52
*/```
原地旋转暴风哭泣!!!飓风哭泣!!!