码迷,mamicode.com
首页 > Web开发 > 详细

PHP面向对象之抽象

时间:2014-06-09 19:50:17      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:c   class   a   ext   color   int   

<?php
//PHP 抽象类 接口

/**
* @author bin
* date:14 / 6 / 8
*
*/
//接口
interface Animal{
//public $name; 不允许
//public static $name; 不允许
const AGE = 100;//可以定义常量
public function voice();
public function showColor();
}

interface Water{
public function showInfo();
}
class Dog_bobo implements Animal,Water{
public function __construct(){
self::showColor();
self::voice();
self::showInfo();
}
public function showInfo(){
echo "<br>喝水不忘挖井人<br>";
}
public function voice(){
echo "我的叫声是 汪汪汪~~~~";
}
public function showColor(){
echo "我是一条黑色的狗";
}
}

class Cat_bobo implements Animal{
public function __construct(){
self::showColor();
self::voice();
}
public function voice(){
echo "我的叫声是 喵喵喵~~~~";
}
public function showColor(){
echo "我是一条黑色的猫";
}
}
$dog = new Dog_bobo();
$Cat = new Cat_bobo();

//实际上 抽象类 面向对象的重要思想,其实对多态的最好支持;
//接口中不能有非抽象的方法
//接口的方法 成员变量不能用private 修饰
// 抽象类 多态的表现
/* abstract class Person{
public $name;
//加abstract 就可以不用写方法体
// 抽象类里定义的方法 它子类都必须重写定义的方法
abstract protected function showName();//不能用private 修饰
//public function yy();这是错误的
public function yy(){
echo "抽象类也可以写非抽象方法";
}
//非抽象方法一定要写方法体

}
Person::yy();//无需实例化 直接这么调用。
class Jay extends Person{
public function showName(){
echo "<br>我的名字叫做周杰伦<br>";
}
}

class Jolin extends Person{
//如果不重写showName
//Class Jolin contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (Person::showName)
public function showName(){
echo "<br>我的名字叫做蔡依林<br>";
}
}

//$person = new Person();
// Fatal error: Cannot instantiate abstract class Person in D:\wamp\www\php\oop\interface.php on line 33
//抽象类 不允许被实例化
$jay = new Jay();
$jay->showName();
$jolin = new Jolin();
$jolin->showName(); */
?>

PHP面向对象之抽象,布布扣,bubuko.com

PHP面向对象之抽象

标签:c   class   a   ext   color   int   

原文地址:http://www.cnblogs.com/bin-pureLife/p/3777185.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!