抽象类中属性的访问修饰符

Posted

技术标签:

【中文标题】抽象类中属性的访问修饰符【英文标题】:Access modifiers for properties within abstract classes 【发布时间】:2013-09-18 16:10:47 【问题描述】:

虽然我已经为 php 开发对象已有一段时间了,但抽象类对我来说还是有些新意。根据我的理解,当我想定义一个我希望自己或其他开发人员遵循的方法列表时,我会使用抽象类,同时还提供一些基础方法来构建。

似乎没有办法在抽象类中定义属性,但我觉得这很奇怪。取以下代码:

abstract class Gateway 

    abstract public function process();

    public function set_gateway_key( $key ) 

          $this->key = $key;

    


此类密钥是您通常希望限制访问以进行某种验证的东西。您可能还可以想象其他一些场景。但是,您不得不依赖扩展此抽象类的开发人员来设置此访问修饰符。

我错过了什么吗?还是没有办法做到这一点?

【问题讨论】:

对我来说很好用,你使用的是什么版本的 PHP?发了quick test 【参考方案1】:

抽象类可以有属性。

abstract class AbstractClass 
    protected $key;

    public function setKey($key) 
        $this->key = $key;
    

【讨论】:

@dev-null-dweller 谢谢 - 好笑我在谈论抽象类时没有把“抽象”放在课堂上!!! 嗯,你有它。我想我应该先尝试一下。谷歌并不总是最好的答案... 如果这回答了您的问题,请单击 UP DOWN 投票箭头旁边的复选 :-) 是的,我必须等待一段时间才能做到。我找到你了,哈哈

以上是关于抽象类中属性的访问修饰符的主要内容,如果未能解决你的问题,请参考以下文章

方法有那些访问控制修饰符,分别是啥作用

Java中的访问修饰符

访问修饰符继承:抽象类中的最终方法

java中抽象类与接口中方法访问修饰符问题 (

this/super/static/final/匿名对象/继承/抽象类/访问权限修饰符

C# 访问修饰符