繁体   English   中英

如何在我的延伸班级中获得一个var?

[英]How can I get a var in my extended class?

我希望有各种扩展情感类的类,每个类都定义了情绪,因此可以在扩展类中使用。

我的问题是,如何在扩展类中获得心情变量,这是到目前为止的内容:

这是我的课:

class Happy extends Emotions{

    protected $mood = 'happy';

}

这是它的扩展:

class Emotions {


public function __construct(){

    var_dump($this->mood);
    die();
}

另一个问题是,这是否是解决此问题的最佳方法? 我想拥有一组核心方法,但是要为该类更改各种变量,因此我的情感类拥有所有方法,然后我有很多用语,例如“快乐”,“悲伤”,“生气”扩展它并设置特定的变量。

您可以在父类中定义属性,然后在子类中对其进行修改。 这样,您可以在父类上访问它。

class Emotions {

    protected $mood = "";

    public function setMood($mood)
    {
        $this->mood = $mood;
    }
}

关于此方法是否可行的问题,很大程度上取决于您要实现的目标。 如果您的孩子情绪类别只是一组属性,则可能不是,因为您不会为不同的情绪添加不同的功能。

另一方面,如果您想为每种情感添加特定的功能,但同时所有情感共享某些功能,则可以创建具有这些通用功能的Parent类,这样就不必重复代码了。

例如:

class Emotion {

    protected $mood = "";

    public function express(){
        echo "I am " . $this->mood;

    }

}

class Happy extends Emotion {

    protected $mood = "happy";

    public function dance(){
        echo "Oh! Yeah!";

    }

}

class Sad extends Emotion {

    protected $mood = "sad";

    public function cry(){
        echo "buaaah!";
    }

}

如您所见,所有的情感都有表达的方法,但是快乐可以跳舞,悲伤可以哭泣。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM