TypechoJoeTheme

Dcr163的博客

统计

PHP面向对象抽象类笔记

2015-10-18
/
0 评论
/
659 阅读
/
正在检测是否收录...
10/18

/*
抽象类:无法实例化
类前加  abstract 此类就成为抽象类,无法实例化
方法前加    abstract 是抽象方法

抽象类    不能        实例化
抽象方法    不能有    方法体

有抽象方法,则此类必是    抽象类
抽象类,内未必有抽象方法

但是---即便全是具体方法,但类是抽象化,也是不能实例化



抽象类的意义

请看如下场景:
Facebook    多国语言欢迎页面
user 登录,有一个 c 字段,是其国家
当各国人登录时,看到各国语言的欢迎界面

我们可以用面向过程来做
if($c=='china') {
    echo '你好,facebook';
}    else if($c=='japan') {
    echo '亚麻跌';
}    else if($c=='english') {
    echo 'hello,facebook';
}

反思:当fackbook进入印度市场时,需要增加else if ,扩展性很差
*/
$c='china';

if($c=='china') {
    echo '你好,facebook';
}    else if($c=='japan') {
    echo '亚麻跌';
}    else if($c=='english') {
    echo 'hello,facebook';
}
echo '<hr />';
/*=====使用面向对象实现=====*/

abstract class welcome {
    public abstract  function wel();
}
class china extends welcome {
    public function wel(){
        echo '你好,facebook!!';
    }
}

class japan extends welcome {
    public function wel() {
        echo '亚麻跌';
    }
}
class english extends welcome {
    public function wel() {
        echo 'HEllO';
    }
}

$human='japan';
$w=new $human();
echo $w->wel();

/*==以上代码所示,以后要是新增一个国家语言,父类就不用
改动了,值需要继承一个相类国家语言的子类就可以了==

所以有些面向对象的介绍中,说面向对象的一个特点:可插拔特性
*/

朗读
赞(0)
版权属于:

Dcr163的博客

本文链接:

https://dcr163.cn/38.html(转载时请注明本文出处及文章链接)

评论 (0)

人生倒计时

今日已经过去小时
这周已经过去
本月已经过去
今年已经过去个月

最新回复

  1. William Tardent
    2024-02-27
  2. Maryann Hamer
    2024-02-27
  3. Sanora Pantano
    2024-02-24
  4. aa
    2024-02-21
  5. Kassie Baum
    2024-01-28

标签云