zoukankan      html  css  js  c++  java
  • 抽象类

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

     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();

    总结:

    抽象类是介于接口和类之间的一种状态,可以有一部分可以实现,一部分不能实现
  • 相关阅读:
    SQLServer: 解决“错误15023:当前数据库中已存在用户或角色
    DEV界面皮肤
    模拟业务最小测试用例
    POJ 2503 Babelfish(map)
    POJ 2001 Shortest Prefixes
    洛谷 P2672 推销员
    POJ 2104 K-th Number && 洛谷 P3834 【模板】可持久化线段树 1(主席树)
    洛谷 P1589 泥泞路
    HDU 6183 Color it(动态开点线段树)
    POJ 2482 Stars in Your Window
  • 原文地址:https://www.cnblogs.com/jacson/p/4620592.html
Copyright © 2011-2022 走看看