PHP练习

题目:
鸟能在空中飞;
飞机也能在空中飞;
超人也能在空中飞;
空警能管理和控制飞机的飞行线路,当然也能管理超人的飞行线路,但是对于鸟是无法管理的

解决方案:
interface IFlyy
{
public function fly();
}
class FlyObject implements IFlyy
{
protected $name;
public function __construct($name)
{
$this -> name = $name;
}
public function getName()
{
return $this-> name;
}
public function fly()
{
echo $this -> name.'在空中飞';
}
}
class Niao extends FlyObject{

}
class FeiJi extends FlyObject{

}
class ChaoRen extends FlyObject{

}
class KongJing extends FlyObject
{
public function guanLiAndKongZhi($fly)
{
if($fly instanceof Niao)
{
echo $this->name.'不能对'.$fly->getName().'的飞行路线进行管理';
}
else
{
echo $this->name.'控制和管理'.$fly->getName().'的飞行路线';
}
}
}
$N = new Niao('鸟');
$N->fly();
echo '<br><br>';
$fj = new Niao('飞机');
$fj->fly();
echo '<br><br>';
$cr = new Niao('超人');
$cr->fly();

练习二:

根据描述定义出对应的功能类、接口等
银行常规的功能有:存款、取款、转账、查询、修改密码等
ATM机也具有类似的功能:存款、取款、转账、查询、修改密码等

但是银行柜台可以直接人工操作服务
另外不同的银行可以提供一些特殊的便民服务:

中国银行可以交水、电、气等费用;
建设银行可以交水、电费,同时也可以交上网费用;
交通银行可以交水费,还可以交交通违章费;
工商银行可以交电、气费,还可以交有线电视费;
另外现在网络也很发达,支付宝和微信都可以支持上面的特殊费用的提交。

根据描述进行设计。

解决方案:
/**
* Class YinHang 定义一个抽象的银行类
*/
abstract class YinHang{
private $YinHangMingCheng;
private $yinHangZhangHao;
private $MiMa;

public function cunKuan(){

}
public function quKuan(){

}
public function zhuanZhang(){

}
public function chaXun(){

}
public function xiuGaiMiMa(){

}
}

/**
* 设计不同的接口
*/
interface IShui{
function jiaoShuiFei();
}
interface IQi{
function jiaoQiFei();
}
interface IDian{
function jiaoDianFei();
}
interface IShangWang{
function jiaoShangWangFei();
}
interface IWeiZhang{
function jiaoWeiZhangFei();
}
interface IDianShi{
function jiaoDianShiFei();
}

class ZhongGuoYinHang extends YinHang implements IShui,IDian,IQi {
function jiaoShuiFei(){
}
function jiaoDianFei(){
}
function jiaoQiFei(){
}
}
class JianSheYinHang extends YinHang implements IShui,IDian,IShangWang{
function jiaoDianFei()
{
// TODO: Implement jiaoDianFei() method.
}
function jiaoShangWangFei()
{
// TODO: Implement jiaoShangWangFei() method.
}
function jiaoShuiFei()
{
// TODO: Implement jiaoShuiFei() method.
}
}
class JiaoTongYinHang extends YinHang implements IShui, IWeiZhang{
function jiaoShuiFei()
{
// TODO: Implement jiaoShuiFei() method.
}
function jiaoWeiZhangFei()
{
// TODO: Implement jiaoWeiZhangFei() method.
}
}
class GongShangYinHang extends YinHang implements IDian, IQi, IDianShi{
function jiaoDianFei()
{
// TODO: Implement jiaoDianFei() method.
}
function jiaoDianShiFei()
{
// TODO: Implement jiaoDianShiFei() method.
}
function jiaoQiFei()
{
// TODO: Implement jiaoQiFei() method.
}
}


class RenGongGuiTai{
private $yinHang;
public function __construct($yinHang)
{
$this->yinHang = $yinHang;
}
public function renGongFuWu(){
echo '人工柜台可以提供人工服务';
}
}
class ATM{
private $yinHang;
public function __construct($yinHang)
{
$this->yinHang = $yinHang;
}
}


abstract class WangLuoZhiFu implements IDianShi,IDian,IQi,IWeiZhang,IShui,IShangWang {

private $name;
private $zhangHao;
private $miMa;

public function __construct($name)
{
$this->name = $name;
}

function jiaoQiFei()
{
// TODO: Implement jiaoQiFei() method.
}
function jiaoDianShiFei()
{
// TODO: Implement jiaoDianShiFei() method.
}
function jiaoDianFei()
{
// TODO: Implement jiaoDianFei() method.
}
function jiaoWeiZhangFei()
{
// TODO: Implement jiaoWeiZhangFei() method.
}
function jiaoShuiFei()
{
// TODO: Implement jiaoShuiFei() method.
}
function jiaoShangWangFei()
{
// TODO: Implement jiaoShangWangFei() method.
}
}

class ZhiFuBao extends WangLuoZhiFu{

}
class WeiXin extends WangLuoZhiFu{

}
原文地址:https://www.cnblogs.com/lxy1023-/p/7202589.html