• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

php中的抽象类和静态方法是什么

php 搞代码 4年前 (2022-01-04) 19次浏览 已收录 0个评论

php中的抽象类是指:在class前加了abstract关键字且存在抽象方法的类,它不能被直接实例化;静态方法是指:被static关键字修饰的方法,静态方法用于操作静态属性。

抽象类

抽象类是指在 class 前加了 abstract 关键字且存在抽象方法(在类方法 function 关键字前加了 abstract 关键字)的类。

(推荐教程:php视频教程)

抽象类不能被直接实例化。抽象类中只定义(或部分实现)子类需要的方法。子类可以通过继承抽象类并通过实现抽象类中的所有抽象方法,使抽象类具体化。

如果子类需要实例化,前提是它实现了抽象类中的所有抽象方法。如果子类没有全部实现抽象类中的所有抽象方法,那么该子类也是一个抽象类,必须在 class 前面加上 abstract 关键字,并且不能被实例化。

举例说明:

abstract Class AbstractClass
{
    abstract public function A();//这里不要携带body
    abstract protected function B();//这里不要携带body
    public function C(){}//这里要携带body
}

class ClassA extends AbstractClass
{
    public function A(){
        echo "Hello,I'm A <br/>";
    }
    protected function B(){
        echo "Hello,I'm B <br/>";
    }
    public function E()
    {
        echo "Hello,I'm E <br/>";
    }
}

静态方法:

静态方法被static关键字修饰。

静态方法用于操作静态属性。所以,静态方法里面不能操作非静态属性。

由于静态方法不需要通过对象即可调用,所以伪变量$this在静态方法中不可用。

如何访问静态方法呢?

在类内部:类名::静态方法 或者 self::静态方法

在类外部:类名::静态方法 或者 对象实例->静态方法

举例说明:

class Person{
    public static $nums = 0;    // 静态属性的申明
    public $age = 0;
    public function addNum(){
        self::$nums++;
        echo self::$nums;   // 在类里面,可用self关键词访问静态属性
        echo Person::$nums;     // 类可直接访问静态属性
        // echo $this->nums;  // 报错,静态属性不可以由对象通过 -> 操作符来<i style="color:transparent">来源gaodai$ma#com搞$$代**码网</i>访问
        self::getNum();     // 在类里面,可用self关键词访问静态方法
        Person::getNum();   // 类可直接访问静态方法
    }
    public static function getNum(){
        // 静态方法
        // echo $this->age;  // 报错,静态方法里面不能操作非静态属性
        echo '真的吗?'.self::$nums;    //静态方法中只能操作静态属性 
    }
}
$p1 = new Person();
$p1->addNum();
echo $p1::$nums;    // 对象实例可以这样访问静态属性
Person::getNum();   // 类可直接访问静态方法
$p1->getNum();  // 对象实例可以这样访问静态方法

相关推荐:php培训

以上就是php中的抽象类和静态方法是什么的详细内容,更多请关注搞代码gaodaima其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:php中的抽象类和静态方法是什么

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址