Questions tagged «superclass»

12
将项目导入Eclipse之后,“必须重写超类方法”错误
每当我必须将我的项目重新导入到Eclipse中(如果我重新安装了Eclipse或更改了项目的位置)时,几乎所有覆盖的方法都未正确格式化,从而导致错误: 该方法必须重写超类方法 值得注意的是,无论出于何种原因,这都是在Android项目中使用的,方法参数值并不总是填充的,因此我必须自己手动填充它们。例如: list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() { //These arguments have their correct names public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { } }); 最初将这样填充: list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() { //This methods arguments were not automatically provided public void onCreateContextMenu(ContextMenu arg1, View arg2, ContextMenuInfo arg3) { } }); 奇怪的是,如果我删除代码,并让Eclipse自动重新创建该方法,它将使用与我已经拥有的参数名称相同的名称,因此我真的不知道问题出在什么地方,否则它将为该方法自动格式化我。 必须手动手动重新创建所有我覆盖的方法,这变得非常痛苦。如果有人可以解释为什么会发生或如何解决。我会很高兴的。 也许是由于我格式化方法的方式所致,而该方式位于另一个方法的参数内?

22
为什么是super.super.method(); Java中不允许使用?
我读了这个问题,并认为如果可以写的话,很容易解决(不是没有它就不能解决): @Override public String toString() { return super.super.toString(); } 我不确定在很多情况下它是否有用,但是我想知道为什么它没有用,以及其他语言中是否存在类似的东西。 你们有什么感想? 编辑: 澄清一下:是的,我知道,这在Java中是不可能的,我也不是很想念它。这不是我期望的结果,并且惊讶于出现编译器错误。我只是有这个想法,喜欢讨论它。
360 java  superclass 

7
对于新样式的类,super()引发“ TypeError:必须为类型,而不是classobj”
以下用法super()引发TypeError:为什么? >>> from HTMLParser import HTMLParser >>> class TextParser(HTMLParser): ... def __init__(self): ... super(TextParser, self).__init__() ... self.all_data = [] ... >>> TextParser() (...) TypeError: must be type, not classobj 在StackOverflow上有一个类似的问题:Python super()引发TypeError,该错误由用户类不是新型类的事实来解释。但是,上面的类是一种新式的类,因为它继承自object: >>> isinstance(HTMLParser(), object) True 我想念什么?我如何super()在这里使用? 使用HTMLParser.__init__(self)代替super(TextParser, self).__init__()可以工作,但是我想了解TypeError。 PS:Joachim指出,成为一个新类实例并不等同于成为一个实例object。我读了很多相反的书,因此感到困惑(基于object实例测试的新型类实例测试的示例:https : //stackoverflow.com/revisions/2655651/3)。

2
测试Ruby类是否是另一个类的子类
我想测试一个类是否从另一个类继承,但是似乎不存在用于该类的方法。 class A end class B < A end B.is_a? A => false B.superclass == A => true 我想要的一个简单实现是: class Class def is_subclass_of?(clazz) return true if superclass == clazz return false if self == Object superclass.is_subclass_of?(clazz) end end 但我希望这已经存在。

9
为什么不自动调用超类__init__方法?
为什么Python设计人员会决定子类的__init__()方法不会__init__()像某些其他语言那样自动调用其超类的方法?Pythonic和推荐的习语真的像下面这样吗? class Superclass(object): def __init__(self): print 'Do something' class Subclass(Superclass): def __init__(self): super(Subclass, self).__init__() print 'Do something else'

7
__init __()是否应该调用父类的__init __()?
我在Objective-C中使用过这种结构: - (void)init { if (self = [super init]) { // init class } return self; } Python是否还应该为调用父类的实现__init__? class NewClass(SomeOtherClass): def __init__(self): SomeOtherClass.__init__(self) # init class 对于__new__()和也是正确/错误__del__()吗? 编辑:有一个非常类似的问题:Python中的继承和重写__init__
132 python  oop  superclass 

5
在python中继承和覆盖__init__
我正在阅读“深入Python”,并在有关类的章节中给出了以下示例: class FileInfo(UserDict): "store file metadata" def __init__(self, filename=None): UserDict.__init__(self) self["name"] = filename 然后,作者说,如果要覆盖该__init__方法,则必须__init__使用正确的参数显式调用父方法。 如果该FileInfo班有一个以上的祖先班怎么办? 我是否必须显式调用所有祖先类的__init__方法? 另外,我是否必须对要覆盖的其他任何方法执行此操作?

12
从超类中获取子类的名称
假设我有一个名为的基类Entity。在该类中,我有一个静态方法来检索类名称: class Entity { public static String getClass() { return Entity.class.getClass(); } } 现在,我有另一个班级对此进行扩展。 class User extends Entity { } 我想获取User的类名称: System.out.println(User.getClass()); 我的目标是看到“ com.packagename.User”输出到控制台,但是我将最终以“ com.packagename.Entity”结尾,因为直接从静态方法中引用了Entity类。 如果这不是静态方法,则可以通过使用类中的this关键字Entity(即:)轻松解决return this.class.getClass()。但是,我需要此方法来保持静态。有关如何处理此问题的任何建议?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.