分析php中的抽象类



我对抽象类有点困惑!我读了更多在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();
?>

根据的定义

"抽象类是一个被声明为抽象的类,它可能是,也可能是不包括抽象方法。抽象类不能实例化,但是它们可以被细分。抽象方法是指在没有实现的情况下声明"。

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

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

您的代码是正确的。弃权类的意思是,当你不能做一个例子的时候。你不能这样做:

$abstract = new AbstractClass();

最新更新