doudao8283 2012-01-07 12:52
浏览 32
已采纳

我如何共享父类的逻辑和功能?

I want to add additional stuff to the parent class. I can't modify the parent class because all modifications will be erased when the software is upgraded. So I want to extend the class. Can I just add this in the child class without repeating parent functions?

class parent
{
    public function __construct()
    {
        // lots of logic to hook up following functions with main software
    }

      // lots of parent functions
}

class child extends parent
{
     function __construct()
    {
        // Is this going to share parent's logic and hook up with those actions?
        // Or, should I repeat those logics?
        parent::__construct();

        // add child addicional logic
    }
     // child functions
    // should I repeat parent's functions? I need the parent take child along all the jobs.

}
  • 写回答

2条回答 默认 最新

  • douji5329 2012-01-07 13:05
    关注

    Yes, that is the correct way to do it.

    class parent
    {
        public function __construct()
        {
            // lots of logic to hook up following functions with main software
        }
        // lots of parent functions
    
        protected function exampleParentFunction()
        {
            //do lots of cool stuff
        }
    }
    
    class child extends parent
    {
         function __construct()
        {
            // This will run the parent's constructor
            parent::__construct();
            // add child additional logic
        }
        // child functions
        public function exampleChildFunction();
        {
            $result = $this->exampleParentFunction();
            //Make result even cooler :)
        }
        //or you can override the parent methods by declaring a method with the same name
        protected function exampleParentFunction()
        {
            //use the parent function
            $result = parent::exampleParentFunction();
            //Make result even cooler :)
        }
    }
    

    Going by your recent questions you really need to read a book on PHP OOP. Start with the manual http://www.php.net/oop

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥20 完全没有学习过GAN,看了CSDN的一篇文章,里面有代码但是完全不知道如何操作
  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 软件测试决策法疑问求解答
  • ¥15 win11 23H2删除推荐的项目,支持注册表等
  • ¥15 matlab 用yalmip搭建模型,cplex求解,线性化处理的方法
  • ¥15 qt6.6.3 基于百度云的语音识别 不会改
  • ¥15 关于#目标检测#的问题:大概就是类似后台自动检测某下架商品的库存,在他监测到该商品上架并且可以购买的瞬间点击立即购买下单
  • ¥15 神经网络怎么把隐含层变量融合到损失函数中?
  • ¥15 lingo18勾选global solver求解使用的算法
  • ¥15 全部备份安卓app数据包括密码,可以复制到另一手机上运行