gpt4 book ai didi

php - 分析php中的抽象类

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:41:04 27 4
gpt4 key购买 nike

我对抽象类有点困惑!我已经阅读了更多在 stackoverflow 和另一个网站上写的帖子,但我不明白!所以我又看了一遍我的书,但我也没看懂。所以请逐步分析下面的代码:

提前致谢

<?php
abstract class AbstractClass
{
abstract protected function getValue();
public function printOut() {
print $this->getValue();
}
}
class ConcreteClass1 extends AbstractClass
{
protected function getValue() {
return "ConcreteClass1";
}
}
class ConcreteClass2 extends AbstractClass
{
protected function getValue() {
return "ConcreteClass2";
}
}
$class1 = new ConcreteClass1;
$class1->printOut();

$class2 = new ConcreteClass2;
$class2->printOut();
?>

最佳答案

根据定义

'An abstract class is a class that is declared abstract —it may or may not include abstract methods. Abstract classes cannot be instantiated, but they can be subclassed. An abstract method is a method that is declared without an implementation'.

如果定义了一个抽象类,你应该用另一个扩展那个类。如果抽象类中有抽象方法,则应将它们写在子类中以实例化子类。

与代码相关,这就是为什么当您实例化 ConcreteClass 时,getValue 函数被“覆盖”到模式,而对 printOut 方法的调用来自父亲本身,因为它是已经写入且未被子进程覆盖。 (另请参阅该方法不是抽象的,这就是为什么您也可以从父类中使用它的原因)

关于php - 分析php中的抽象类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31239681/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com