php - 继承时抽象类和非抽象类的区别

  显示原文与译文双语对照的内容
0 0

我已经在php中搜索抽象类的几个小时的优点。 我知道抽象类不能被实例化,这是独立设计 Pattern的一个很好的特性。 但我的观点是,因为它们都可以用作基类,所以还有其他的理由使用抽象类? 如果我在php中使用抽象类,这个的所有答案都是优势? 但是,我发现没有提到这个,他们只是回答另一个问题,即使用基类的优点? 所以,我的问题是,除了无法实例化的外部基类之外,使用抽象基类是有原因的。

时间: 原作者:

0 0

抽象类不能直接实例化,但它既可以包含抽象方法,也可以包含非抽象方法。

如果扩展抽象类,则必须实现它的所有抽象函数,或者使子类抽象。

不能重写正则方法并使它的抽象,但必须( 最终) 重写所有抽象方法并使它的不抽象。

抽象关键字用于将类或者方法作为模式进行标记。 它类似于接口,但可以包含变量和方法的实现。

关于抽象类有很多误解。 下面是抽象Dog类的例子。 如果开发人员想要为它的他开发人员创建一些基本的狗类,或者他自己扩展类。 你不能直接实例化狗类( 没人能),但是你可以通过自己的类扩展狗。 SmartDog扩展狗等。

Dog类声明为抽象的所有方法都必须在扩展Dog类的每个类中手动实现。

例如抽象 class Dog 具有抽象方法 Dog::Bark() 。 但所有的狗都不同。 所以在每个子类中,你必须描述狗是如何barks的,所以你必须定义 SmartDog::Bark()

原作者:
...