问题标签 [super]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 在Java中,要使用“super”关键字,我必须导入目标类吗?
当我们在构造函数中使用 super 关键字时,我们是否必须导入 super 引用的类(当 super 不引用 Object 时)?
iphone - Obj-C:调用超类
什么是正确的,将所有代码放在超级调用之前或之后?它的工作方式是双向的,但我不知道是等到电话结束还是在开始时提交更好?
干杯
java - 在 Java 中,this/super 关键字可以代表类/枚举以外的任何内容吗?
我注意到:
每当我this
在匿名类中使用关键字时,都this
指的是封闭的外部类/枚举,而不是匿名类。
这是否意味着this
永远不能代表匿名类?只是“正常”的类和枚举?
另外,可以this
或super
代表一个接口吗?
python - Python 的 super()、抽象基类和 NotImplementedError
抽象基类在 Python 中仍然很方便。在编写一个我希望每个子类都有一个spam()
方法的抽象基类时,我想写这样的东西:
挑战来自还想要使用super()
,并通过将其包含在整个子类链中来正确地做到这一点。在这种情况下,似乎我必须super
像下面这样包装每个调用:
这对于一个简单的子类来说是可以的,但是当编写一个有很多方法的类时,try-except 会变得有点麻烦,而且有点难看。有没有更优雅的从抽象基类子类化的方式?我只是做错了吗?
ruby-on-rails - heroku & 设计用户注册注册控制器错误
我刚刚切换到 Devise/Omniauth 组合,一切都在我的 localhost 服务器上正常工作。但是,当我上传到 heroku 时,当用户单击传统注册表单上的注册(不是omniauth 登录)时,应用程序崩溃。我正在使用 rails 3。我的日志说
LoadError(没有要加载的此类文件--bcrypt):app/controllers/registrations_controller.rb:11 in 'build_resource' app/controllers/registrations_controller.rb:4 in create'
引用的控制器:
第 4 行和第 11 行是超级代码,因为注册控制器覆盖了设计。怎么了?谢谢。
objective-c - self.view / super.view
有什么区别
和
谢谢你!!
法兰胡
python - 如何通过手动填充 __class__ 单元格使 super() 工作?
在 Python 3 中,可以使用super()
代替super(MyClass, self)
,但这仅适用于在类中定义的方法。如Michele Simionato 的文章中所述,以下示例不起作用:
它失败是因为super()
寻找一个在本例中未定义的__class__
单元格。
是否可以在定义函数后手动设置此单元格,或者这是不可能的?
不幸的是,我不明白细胞在这种情况下是如何工作的(没有找到太多的文档)。我希望有类似的东西
当然,我只会在类分配明确/唯一的情况下使用它(在我的情况下,将方法添加到类的整个过程是自动化的,因此添加这样一行会很简单)。
iphone - (iphone) [super touchesBegan/Moved/Ended] 有什么作用?
大多数重载方法都需要[super theMethod]
调用。
(例如[super viewDidLoad];
,[super viewWillAppear];
和[super dealloc];
)
我没有考虑是否需要[super touchesBegan:withEvent:]
打电话,但它似乎以某种方式发挥了作用。
我什么时候需要它,什么时候不需要它?
我正在尝试在需要时以编程方式取消触摸事件,这似乎与我提出的问题有关。
android - Android Eclipse 插件生成的代码中 super() 调用的位置是否可靠?
在许多 Android 方法中,尤其是构造函数和重写方法中,您应该甚至必须使用super()调用父类方法。当您使用 Eclipse Source > Override/Implement Methods...时,您会从带有 TODO 标记的模板中获取代码,如下所示:
我不完全理解超类在每种情况下的作用,所以我总是将我的代码插入到//TODO标记的确切位置。在示例中,我将在构造函数中的代码之前和 onDraw() 中的代码之后调用 super()。
我可以始终依赖生成代码中的这些代码插入位置吗?何时调用 super() 是否有简单的规则/解释?