0

我知道使用受保护的方法或构造函数非常罕见。我已经在 SO 和其他网站上阅读了关于此的讨论。我的任务很简单。我必须从我的程序中访问受保护的方法/构造函数。所有属性/方法都必须声明为受保护。

我的代码可以简化为这个。我基本上被要求以最简单/最简单的方式做到这一点。我能想到的所有解决方案要么使用一些更高级的技术(“朋友”等),要么使用违反规则的公共功能。

谢谢你。

     class one
        {
         protected $attribute1;
        }

        class two extends one
        {
         protected $attribute2;
         protected $attribute3;
            protected function __construct($arg1, $arg2, $arg3)  
         {
          $this->attribute1= $arg1;
          $this->attribute2= $arg2;
          $this->attribute3= $arg3;

            }
        }

$object = new two(" 1", "2", "3");
4

1 回答 1

4

私有或受保护构造函数的目的是防止从类外部实例化类。

您可以在返回新对象的类中创建一个公共静态函数,但如果您想让构造函数受到保护或私有,则不能直接创建它。您必须将某些内容声明为公共,否则您将无法使用该类。

于 2010-10-28T20:53:50.277 回答