【问题标题】:What is the purpose of concrete methods in abstract classes in Python?Python抽象类中具体方法的目的是什么?
【发布时间】:2019-11-19 12:08:19
【问题描述】:

我觉得这个主题在其他一些问题中有所涉及,但它并没有具体涉及 Python (3.7),这是我最熟悉的语言。

我开始掌握抽象类的窍门,以及如何将它们用作我正在创建的子类的蓝图。

我不明白的是抽象类中具体方法的目的。

如果我永远不会实例化我的父抽象类,为什么根本需要一个具体的方法,我不应该坚持使用抽象方法来指导我的子类的创建并明确预期的行为吗?

谢谢。

【问题讨论】:

    标签: python-3.x oop abstract-class


    【解决方案1】:

    这个问题不是 Python 特有的,而是面向对象的。

    在某些情况下,您的所有子类都需要具有共同行为的特定方法。在所有子类中实现相同的方法会很乏味。如果您改为在父类中实现该方法,您的所有子类都会自动继承该方法。甚至调用者也可以调用子类上的方法,尽管它是在父类中实现的。这是类继承的基本机制之一。

    【讨论】:

    • 那么我想我的问题更像是:'抽象类中的抽象方法和具体方法有什么区别?'不一样吗?
    • 在实例化任何子类之前需要实现抽象方法。这就像在抽象类中声明的合同:这个类的任何实例。它的子类将实现这些方法。
    • 抽象方法和具体方法的区别在于实现了具体方法,而没有实现抽象方法。不能实例化具有抽象方法的类。
    猜你喜欢
    • 2018-05-12
    • 2013-05-16
    • 2012-03-22
    • 2015-10-26
    • 1970-01-01
    • 2017-09-26
    • 1970-01-01
    • 1970-01-01
    • 2011-01-18
    相关资源
    最近更新 更多