码迷,mamicode.com
首页 > 其他好文 > 详细

抽象类

时间:2015-07-04 15:17:14      阅读:113      评论:0      收藏:0      [点我收藏+]

标签:

抽象类
    ·接口里面的方法都是没有实现的,而类里面的方法都是有实现的
    ·有没有一种形态,允许类里面的一部分方法不实现呢?
    当接口中的某些方法对于所有的实现类都是一样的实现方法,只有部分方法需要用到多态的特性
实例
    人和动物吃东西是不同的,但是呼吸是相同的,不需要为人和动物分别实现呼吸的功能

 1 <?php
 2 //abstract关键字用于定义抽象类
 3 abstract class ACanEat{
 4     //在抽象方法前面添加abstract关键字可以表明这个方法是抽象方法不需要具体实现的方法
 5     abstract public function eat($food);
 6     
 7     //抽象类中可以包含普通的方法,有方法的具体实现
 8     public function breath() {
 9         echo "Breath use the air"."<br/>";
10     }
11 }
12 //继承抽象类的关键字是extends
13 class Human extends ACanEat{
14     //继承抽象类的子类需要实现抽象类的中定义的抽象方法
15     public function eat($food) {
16         echo "Human eating ".$food."<br/>";
17     }
18 }
19 
20 class Animal extends ACanEat{
21     public function eat($food) {
22         echo "Animal eating ".$food."<br/>";
23     }
24 }
25 
26 $man = new Human();
27 $man->eat(‘apple‘);
28 $man->breath();  //和Animal类共用了抽象类中的抽象方法
29 $monkey = new Animal();
30 $monkey->eat(‘banana‘);
31 $monkey->breath();

总结:

抽象类是介于接口和类之间的一种状态,可以有一部分可以实现,一部分不能实现

 

抽象类

标签:

原文地址:http://www.cnblogs.com/jacson/p/4620592.html

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