`

调用未绑定的超类构造方法

阅读更多
1. 老式类中会使用到的
class Bird:
    def __init__(self):
        self.hungry = True
    def eat(self):
        if self.hungry:
            print 'Aaaah...'
            self.hungry = False
        else:
            print 'No, thanks!'

class SongBird(Bird):
    def __init__(self):
        Bird.__init__(self)
        self.sound = 'Squawk!'
    def sing(self):
        print self.sound    


2. 新式类中会使用到的
__metaclass__ = type
class Bird:
    def __init__(self):
        self.hungry = True
    def eat(self):
        if self.hungry:
            print 'Aaaah...'
            self.hungry = False
        else:
            print 'No, thanks!'

class SongBird(Bird):
    def __init__(self):
        super(SongBird, self).__init__()
        self.sound = 'Squawk!'
    def sing(self):
        print self.sound    
分享到:
评论

相关推荐

    Javascript类的继承,使用this.callParent调用超类方法

    在本话题中,我们将深入探讨JavaScript中的类继承,并特别关注`this.callParent`这个方法,它是如何被用来调用超类方法的。 首先,让我们了解JavaScript中的构造函数。构造函数是一种特殊的函数,用于创建和初始化...

    Python基础教程(第2版)第九章魔法方法、属性和迭代器.pdf

    在Python中,可以使用`super()`函数来调用未绑定的超类构造方法。这个函数会自动处理方法绑定,确保正确地传递`self`参数。在上述例子中,`super().__init__()`就调用了`Bird`类的`__init__`方法。 总结起来,新式...

    导航调用图Navigatingheallraph)1

    `Callable`类是`Method`和`Constructor`的通用超类,代表可以被调用的实体,如方法或构造函数。而`Call`类则是`MethodAccess`, `ClassInstanceExpression`, `ThisConstructorInvocationStmt`和`...

    super-prop:为超类附加一个属性访问器

    为您提供调用基类/超类方法的糖为您提供调用基本/超级构造函数的糖延迟加载绑定更重要的是, super-prop长什么样子? Child . prototype . validate = function ( ) { // call super class's validate method this ...

    Java深入面向对象编程PPT教案学习.pptx

    3. **构造方法**:子类并不直接继承父类的构造方法,但子类的构造方法可以调用父类的构造方法。默认情况下,子类构造器会调用父类无参构造器,如果想调用其他构造器,可以使用`super()`语句显式指定。 4. **特殊...

    考试系统供大家学习java

    - 动态绑定是指在运行时决定调用哪个方法,第十一题选B。 3. 简述题中涉及的知识点: - 超类和子类的关系:超类是被继承的类,子类是继承超类并添加或修改功能的类,它们之间形成一种"is-a"关系。 - 子类对象和...

    Java-J2SE学习笔记

    例如,`super()`用于调用超类的无参构造器,`super(args)`调用带参数的构造器,`super.method()`访问超类的方法,`super.field`访问超类的字段。 3. **this操作符**: this关键字代表当前对象的引用,常用于区分...

    java中面向对象的小练习

    输出结果"Base Sub"表示先调用了父类的构造器,然后是子类的构造器,这符合Java中构造器的调用顺序:先调用超类构造器,再调用自己的构造器。 3. **递归和静态方法**: - `C1.getValue()`是一个递归方法,用于计算...

    JAVA基础第4章继承与多态-练习题 (2).pdf

    在构造器的第一条语句中调用超类构造器是正确的做法,因此第8题答案是B。 5. 静态上下文(如静态方法)中不能使用`this`关键字,因为它指的是实例对象,而静态方法与类而不是对象关联。所以在第9题中,程序会出现...

    17本软件工程专业《程序设计基础(Java)》考试大纲及相关说明

    - **子类构造方法**:掌握子类构造方法与超类构造方法的关系。 - **关键字super**:掌握`super`关键字的使用方法。 - **第9部分:多态** - **对象间的转换**:理解子类对象被视为超类对象的情况。 - **方法调用*...

    java继承和多态PPT教案学习.pptx

    本PPT教案主要讲解了Java中的继承和多态机制,包括继承、里式代换原则、多态和动态绑定、方法重载、重载构造函数和方法覆盖等概念。 继承是面向对象编程的基本机制之一,允许一个类继承另一个类的成员变量和方法。...

    CHJava核心思想面向对象PPT课件.pptx

    构造方法在创建对象时自动调用,负责设置对象的初始状态。 8. **对象的创建**: - 使用`new`关键字和类的构造函数来创建对象。`new`关键字会分配内存,调用构造函数进行初始化。 9. **对象作为参数**: - 当对象...

    (完整版)Java程序设计习题附答案(三).docx

    构造方法用于初始化类的新实例,其名称必须与类名相同,没有返回值,但可以被重载以提供不同参数列表的构造方式。String对象转换为int值可以通过构造Integer对象然后调用intValue()方法。类的访问控制符包括public...

    java比较全面的面试题,包含答案

    前两者都需要显式地调用构造方法。 switch语句 switch语句可以使用byte, short, char, int或者其对应的封装类、Enum类型作为参数。在Java 1.7之后,switch也可以使用String作为参数。 String对象 String对象可以...

    JAVA面向对象JAVA面向对象.doc

    - 动态绑定(也称为晚期绑定)在Java中是默认行为,意味着在运行时而不是编译时决定调用哪个方法。在示例中,`B b = new B(0); b.showX();` 会调用 `B` 类的 `showX()`,即使 `b` 变量的类型是 `B`,但实际上指向的...

    java面试题完整版1.0

    6. 实例方法可以直接调用超类的实例方法(向上转型),也可以调用本类的类方法(静态方法)。但实例方法不能直接调用其他类的实例方法,除非有明确的引用或对象实例。 7. 链表数据结构的特点包括:不需要预先估计...

    Python super()方法原理详解

    然而,当涉及到类的继承时,有时我们需要在子类中调用父类的构造方法。例如,有如下两个类: ```python class Base: def __init__(self): self.status = True class Derived(Base): def __init__(self): self....

    编程语言java反射.pdf

    - Constructor类:封装了类的构造方法信息,用于在运行时创建对象实例。 - Method类:提供了类或接口上单个方法的详细信息,包括调用方法的能力。 - Class类:代表运行中的Java应用程序中的类和接口,是反射的核心,...

    Java程序设计慕课版)自测试题5套及答案大学期末复习资料.docx

    每个类可以有一个或多个构造方法,它们在创建对象时自动调用。 11. String对象的比较:在Java中,`String`是不可变的,因此创建新的`String`对象不会改变原有对象。题目中,`a`和`b`指向同一个"Java"对象,而`c`是...

    前端程序员必备:JavaScript与ES的25个重要知识点.pdf

    - `super`关键字用于调用父类(超类)的方法或构造函数。 - 类的属性可以通过setter和getter方法进行访问控制和逻辑处理。setter用于设置值,getter用于获取值。 3. **原型与继承**: - 每个JavaScript对象都有...

Global site tag (gtag.js) - Google Analytics