<?php
//case 34 抽象类
/**
* Class goods1
*
*/
abstract class goods1
{
public $name;
public $price;
/**
* goods1 constructor.
* @param $name
* @param $price
*/
public function __construct($name,$price)
{
$this->name = $name;
$this->price = $price;
}
/**
* @return mixed
*/
abstract protected function getName();
final public function getPrice()
{
return $this->price;
}
}
/**
* Class book1
*/
class book1 extends goods1
{
/**
* @return mixed|string
*/
public function getName()
{
return '书名:《'.$this->name.'》';
}
}
$vBook1 = new book1('PHP入门基础教程',45);
echo $vBook1->getName();
echo "<br>";
echo $vBook1->getPrice();
echo '<hr>';
class phone1 extends goods1
{
public function getName()
{
return '手机型号为:'.$this->name;
}
}
$vPhone1 = new phone1('三星',2999);
echo $vPhone1->getName();
echo "<br>";
echo $vPhone1->getPrice();
echo "<hr>";
/**
* Interface usb1
*/
interface usb1
{
public function connect();
public function transfer();
public function disconnect();
}
class mp31 implements usb1
{
private $name;
public function __construct($name)
{
$this->name = $name;
echo $name.'MP3生成中 <br>';
}
public function connect()
{
return '开始连接<br>';
}
public function transfer()
{
return '开始传输.......传输结束<br>';
}
public function disconnect()
{
return '断开<br>';
}
}
$vmp3 = new mp31('大华');
echo $vmp3->connect();
echo $vmp3->transfer();
echo $vmp3->disconnect();
echo "<hr>";