草庐IT

Inheritance

全部标签

ios - Swift:将泛型类型转换为相同的泛型类型但具有关联类型的子类

考虑这些类:structOrderedSet{}classExercise:Hashable{}classStrengthExercise:Exercise{}classCardioExercise:Exercise{}我想做以下事情:vardisplayedExercises=OrderedSet(){didSet{self.tableView.reloadData()}}varcardioExercises=OrderedSet()varstrengthExercises=OrderedSet()@IBActionfuncsegmentControlChanged(segmentC

ios - "Ambiguous reference to member ' init(...)"调用基类初始化器

我有一个基类:classViewController:UIViewController{init(nibNamenibNameOrNil:String?){super.init(nibName:nibNameOrNil,bundle:nil)}requiredinit?(coderaDecoder:NSCoder){}}子类:classOneViewController:ViewController{privatevarone:Oneinit(one:One){self.one=onesuper.init(nibName:"OneNib")}requiredinit?(coderaDe

Java继承,使用 builder 模式

我有3个类:错误外壳错误网络错误在哪里ShellErrorextendsError和WebErrorextendsError在ShellError中有一些字段,其中一些是可选的,另一些是必需的。我正在按以下方式构建对象:shellError=newShellError.Builder().setFile(filePattern).setHost(host).setPath(path).setSource(file.isSource()).setJobName(p.getJobName()).build();由于ShellError扩展了Error,我进一步:shellError.set

java - Hibernate 4 : persisting InheritanceType. JOINED 鉴别器列值

我有一个简单的JOINED文档层次结构:CREATETABLEDocuments(idINTEGERNOTNULL,discriminatorENUM('official','individual','external')NOTNULL,file_nameVARCHAR(200)NOTNULL,PRIMARYKEY(id));CREATESystemDocuments(idINTEGERNOTNULL,binary_dataBLOBNOTNULL,PRIMARYKEY(id),FOREIGNKEY(id)REFERENCESDocuments(id));CREATEExternalDo

java - "Attempting to use an incompatible return type"接口(interface)继承

我遇到了使用继承的不兼容返回类型的问题。publicinterfaceA{}publicinterfaceBextendsA{}publicinterfaceC{MapgetMapping();}publicinterfaceDextendsC{MapgetMapping();}有没有办法让它工作?现在编译器告诉我我正在接口(interface)D上“尝试使用不兼容的返回类型”。 最佳答案 我建议你使用interfaceC{MapgetMapping();}这表示“将String映射到A或A的子类型的映射”。这与Map兼容.

java - 自动调用父类(super class)方法

考虑下面的类classA{publicvoidinit(){//dothisfirst;}publicvoidatEnd(){//dothisafterinitofbaseclassends}}classB1extendsA{@Overridepublicvoidinit(){super.init();//donewstuff.//IdonotwanttocallatEnd()methodhere...}}我有几个已经开发的B1、B2、...Bn子类。它们都扩展了A类。如果我想在所有这些中添加一个新功能,最好的地方是在A类中的一个方法中定义它。但条件是该方法应该总是在之前自动调用子类的

java - 继承:对象创建

假设我有这段代码:classAnimal{intlegs=4;inthead=1;}publicclassDogextendsAnimal{publicstaticvoidmain(String[]args){Dogdog=newDog();}}我知道super()隐式地放在无参数构造函数的第一行,所以我知道Animal构造函数将被执行,所以Animal的实例变量将被设置。为此,我想了解,一旦这些变量被super构造函数(Animal)初始化,这些实例变量是否将保留在Animal对象中或复制到子类(狗)。在第一种情况下,Animal对象将由super();隐式实例化,每当实例Dog需要

java - Java 中的继承 - "Cannot find symbol constructor"

我正在处理一个继承自另一个类的类,但我收到一个编译器错误,提示“找不到符号构造函数Account()”。基本上我想做的是制作一个InvestmentAccount类,它从Account扩展-Account旨在通过提取/存入资金的方法保持余额,InvestmentAccount是相似的,但余额存储在股票中,股价决定如何给定一定数额的钱,可以存入或提取许多股票。这是子类InvestmentAccount的前几行(编译器指出问题的地方):publicclassInvestmentAccountextendsAccount{protectedintsharePrice;protectedint

java - 为什么在java中有两种使用线程的方式?

这个问题在这里已经有了答案:"implementsRunnable"vs"extendsThread"inJava(43个回答)关闭9年前。我知道在java中有两种使用线程的方法:实现Runable扩展线程我也知道实现Runable比扩展Thread更好。但为什么有两种方法-为什么不是只有一种?如果实现Runnable是更好的方法,为什么还有其他选择?只有一个选项会有什么问题?

java - Java 中的抽象类和方法,继承

我有类B,它继承自类A。父类(superclass)A是抽象的,包含一个抽象方法。我不想在B类中实现抽象方法,因此我也需要将B类声明为抽象方法。声明B类抽象,有两件事对我有用(程序正确编译和运行):1.)我没有在类B中声明任何抽象方法,即使该类是抽象的。我认为这是有效的,因为类继承了类A的抽象方法,这足以将类声明为抽象:我们不需要在类中直接声明任何其他抽象方法。2.)我确实在B类中声明了与在A类中声明的相同的抽象方法。这是某种覆盖(?),与java中的覆盖不同(使用相同的header,但提供不同的实现),这里我只是再次使用方法的相同header。这两件事都在起作用,我不确定它们是否都正