我正在阅读“深入Python”,并在有关类的章节中给出了以下示例:
class FileInfo(UserDict):
"store file metadata"
def __init__(self, filename=None):
UserDict.__init__(self)
self["name"] = filename
然后作者说,如果要覆盖该__init__
方法,则必须__init__
使用正确的参数显式调用父方法。
FileInfo
班有一个以上的祖先班怎么办?
__init__
方法? 关于子类-超类调用,这本书有些过时了。在子类化内置类方面也有些过时。
如今看起来像这样:
class FileInfo(dict):
"""store file metadata"""
def __init__(self, filename=None):
super(FileInfo, self).__init__()
self["name"] = filename
请注意以下几点:
我们可以直接继承内建类,如dict
,list
,tuple
,等。
该super
函数负责跟踪此类的超类并在其中适当地调用函数。
问题内容: 为什么超类的实例变量在继承中不被覆盖? 问题答案: 因为继承旨在修改行为。行为是通过方法公开的,这就是为什么可以覆盖它们的原因。 字段不是行为而是状态。您不需要修改它,也不需要修改超类使用的私有方法。它们旨在让超类完成其工作。
问题内容: 我有一个具有通用方法的抽象类,并且我想通过用特定类型代替通用参数来覆盖通用方法。所以在伪代码中,我有以下内容: 但是由于某种原因,我不允许这样做?我是在犯某种语法错误还是不允许这种继承和覆盖?具体来说,由于eclipse IDE不断提醒我要实现,我遇到了一个错误。 这就是我希望上面的代码起作用的方式。在我的代码的其他地方,有一个方法可以期望实现对象的实例,这具体意味着它们具有我可以使用
本文向大家介绍解析Java继承中方法的覆盖和重载,包括了解析Java继承中方法的覆盖和重载的使用技巧和注意事项,需要的朋友参考一下 方法的覆盖 在类继承中,子类可以修改从父类继承来的方法,也就是说子类能创建一个与父类方法有不同功能的方法,但具有相同的名称、返回值类型、参数列表。 如果在新类中定义一个方法,其名称、返回值类型和参数列表正好与父类中的相同,那么,新方法被称做覆盖旧方法。 参数列
在这个程序中,我试图通过使用子类ResziableCircle My code中的重写方法为radious变量赋值 为什么在调用resize函数后,输出中有radious zero的值?我试图找出代码中的问题在哪里,但找不到。
在面向对象的程序设计中,定义一个新的 class 的时候,可以从某个现有的 class 继承,新的 class 称为子类,而被继承的 class 称为基类、父类或超类。 Python 中继承的语法如下: class Parent: pass class Child(Parent): pass 在第 1 行,定义了父类 Parent; 在第 4 行,定义了子类 Child,语法
我有一张从班级媒体继承的班级CD: 光盘: 媒体: JPA 自动生成一个外键名称,我想用我想要的名称覆盖它: 03-10 18:16:58.174[main]调试org.hibernate。SQL-alter table cd添加约束FK_ehd468g2cptgh6bq6sxe75xlf外键(id)引用媒体(id) 怎么做?我试过: 和 但它不起作用。 下面是 sql 生成的创建表: 我想: