• 7.18 面向对象:三大特性 ,抽象类,接口


    三大特性:1 封装 2继承 3多态

    类的封装修饰词: 1 public 公开的:类外面可以访问,子类可以访问,父类可以访问

            2  protected 被保护的:类外面不能访问,子类可以访问,父类可以访问.

           3 private 私有的:类外面不能访问,子类不能访问,父类可以访问

    继承的关键字:extends

    抽象类: 1  关键字:abstract

                   2 含有抽象方法的类是抽象类

                  3 子类中必须实现父类的抽象方法,否则报错

    接口 :1 关键字interface

                2 只含有抽象方法的类

                3 体内不能含有普通方法

                4 子类中必须实现父类的所有的抽象方法,否则报错

                5 子类继承不能用extends,用implements

               6 抽象类中的抽象方法都是抽象方法,所以不用加abstract

    <?php
        header("Content_type: text/html; charset=utf-8");
        //多态
          /*
           class Animal{
                   private function say(){
                       echo "我是父类的say方法";
                   }
           }
           class Dog extends Animal{
                   public function say($num1){
                       echo $num1."我是子类的say方法";
                   }
           }
           $d1 = new Dog();
           $d1 ->say(1);
           $d1 ->say(2);*/
       //================抽象======================
     /*  abstract class Psrson{
            public $name;
            public $age;
            public function say(){
                
            }
            abstract public function jump();
            abstract public function jump1();
       }
       class Man extends Person{
                public function jump(){
                    echo "我跳的高";
                }
       }*/
    abstract class Usb{
       public function load(){
          echo "usb is loading";
       }
       public function start(){
          echo "usb is starting";
       }
       abstract public function unload();//抽象方法
    }
    
    
    class Upan extends Usb{
        public function unload(){//子类中必须实现父类的抽象方法,否则报错
         echo "usb is unloading";
        }
    }

    //===============继承=================== class Animal{ private $name; public $age; function __construct(){ echo "我是父类的构造函数"; } public function say($name){ $this->name =$name; echo "{$name}会叫"; } public function pp(){ echo "$this->name " ; } } class Dog extends Animal{ public $address; function __construct(){ parent:: __construct(); echo "我是子类的构造函数"; } public function jump(){ echo "跳"; } } $d1 = new Dog(); $d1 ->say("旺财"); $d1->jump(); $d1->pp(); //echo $name; //单继承 //子类继承父类的所有 //================接口=================== /* interface Usb{ public function jump(); public function jump1(); } interface UsbDaoban{ public function jump2(); public function jump3(); } class Keywords implements Usb,UsbDaoban{ public function jump(){ echo "跳1"; } public function jump1(){ echo "跳1"; } public function jump2(){ echo "跳1"; } public function jump3(){ echo "跳1"; } }*/
    //接口
    interface Usb1{
       public function load();
       public function start();
       public function unload();
    }
    
    
    class Upan1 implements Usb1{//子类中必须实现父类的所有抽象方法,否则报错
     public function load(){
         echo "usb is load";
        }
        public function start(){
         echo "usb is unloading";
        }
        public function unload(){
         echo "usb is unloading";
        }
    }

    //===============封装============== /*class Person{ //把类中的成员设为私有 private $name; private $age; //单独写一个方法进行调用 public function getName(){ return $this->name; } public function getAge(){ return $this->age; } public function setName($n){ if(is_string($n)){ $this->name=$n; } } public function setAge($num){ if($num>0 && $num<130){ $this->age=$num; } } } $p1 = new Person(); $p1->setName("zhangsan"); $p1->setAge(100); var_dump($p1);*/ ?>
  • 相关阅读:
    [TCP IP详解:学习笔记]UDP:用户数据协议
    [TCP IP详解:学习笔记]IP选路
    [TCP IP详解:学习笔记]IP:网络协议
    [TCP IP详解:学习笔记]TCP连接的建立与终止
    [TCP IP详解:学习笔记]ICMP:Internet控制报文协议
    [TCP/IP详解:学习笔记]链路层
    [TCP/IP详解:学习笔记]ARP:地址解析协议
    [TCP IP详解:学习笔记]TCP:传输控制协议
    [TCP IP详解:学习笔记]广播和多播
    [TCP IP详解:学习笔记]IGMP:Internet组管理协议
  • 原文地址:https://www.cnblogs.com/sunhao1987/p/9401329.html
Copyright © 2020-2023  润新知