View Code

抽象

先来讲静态

静态的的分类和区别

1、普通成员

普通成员是属于对象的

2、静态成员

静态成员是属于类的

加上关键字static可以变成静态的

调用类中的变量,需要双冒号::

静态的不需要造新对象

普通方法里面可以调用静态成员

静态方法里面不能调用普通方法

self关键字在类里面代表该类,静态成员用的

例:

复制代码
<?php

class Ren
{
    public $name="张三";
    public static $zhongzu; //静态成员
    
    //普通方法
    function Say()
    {
        echo self::$zhongzu."你好";     可以调用静态成员,关键字self
    }
    //静态方法
    static function Run()
    {
        echo $this->name;
    }
}

Ren::$zhongzu = "战斗民族";      静态调用类中变量
Ren::Run();

$r = new Ren();                 
$r->Say();
?>
复制代码

抽象类:

比类更加抽象

不能被实例化,作为父类使用

关键字abstract写在类名前面

extends是继承的意思

复制代码
<?php
abstract class DongWu            加关键字,就是一个抽象类
{
    public $name;
    public $age;
    
    function Run()
    {
        echo "跑";
    }
}

class Dog extends DongWu           子类继承父类的
{
    
}

$d = new Dog();
$d->Run();
以运算为例:
abstract class YunSuan           加关键字,成为抽象类
{
    public $a;
    public $b;
    
    function Suan()
    {
    }
}

class Jia extends YunSuan        子类继承父类
{
    function Suan()
    {
        return $this->a+$this->b;
    }
}

class Jian extends YunSuan        同样是子类继承父类,父类可以派生多个子类
{
    function Suan()
    {
        return $this->a-$this->b;
    }
}

class Cheng extends YunSuan
{
    function Suan()
    {
        return $this->a*$this->b;
    }    
}

$jia = new Cheng();
$jia->a=10;
$jia->b=5;
echo $jia->Suan();

?>
复制代码

接口:

极度抽象的类

定义方式不用class  用imterface

命名规则一般用I开头

接口里面只声明函数名,没有函数体,不要写花括号

继承接口的关键字不是用extends,要用implements

接口里面的方法主要用来控制子类,必须实现该方法

例:

复制代码
<?php
interface IUSB
{    
    function Read(); //接口里面只声明函数名
    function Write(); 
}

class ShuBiao implements IUSB
{
    function Read()
    {
        echo "鼠标插上了";
    }
    function Write()
    {
        echo "给鼠标传了数据";
    }
}

$s = new ShuBiao();
$s->Read();


//接口

//1.面向对象 interface
//2.API

?>
复制代码

 

posted @   风中摇曳的小花朵  阅读(290)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示