草庐IT

clang - Swift:声明 'description' 不能覆盖多个父类(super class)声明

我有一个类似于下面的继承结构。我正在采用Printable协议(protocol)并努力覆盖description属性。我遇到了一个谷歌此时似乎不知道的奇怪错误,提示为第三类,并引用了第二类和第一类。雪上加霜的是,下面的代码实际上编译得很好,但我的完整代码却没有。注释掉Second和Third的属性解决了问题,代码编译,测试通过等。Swift继承章节对此提供了指示。有谁知道这是什么意思,什么情况会触发它?/Users/ivanhoe/Dropbox/swift/convergence/Processable.swift:124:18:error:declaration'descript

ios - 构造其子类时无法访问 Swift 通用父类(super class)的 init

我有以下代码:classILProperty{varvalue:T?init(_value:T){self.value=value}}typealiasILStringProperty=ilStringPropertyclassilStringProperty:ILProperty{}letx=ILStringProperty("X")最后一行是编译错误:'ILStringProperty'cannotbeconstructedbecauseithasnoaccessibleinitializers如果我覆盖初始化:overrideinit(_value:String){super.i

ios - Swift - 必须调用父类(super class) SKSpriteNode 错误的指定初始值设定项

此代码在第一个XCode6Beta上运行,但在最新的Beta上无法运行并出现此类错误必须调用父类(superclass)SKSpriteNode的指定初始化程序:importSpriteKitclassCreature:SKSpriteNode{varisAlive:Bool=false{didSet{self.hidden=!isAlive}}varlivingNeighbours:Int=0init(){//throws:mustcalladesignatedinitializerofthesuperclassSKSpriteNodesuper.init(imageNamed:"b

class - 为什么 Swift 初始化器不能在它们的父类(super class)上调用便利初始化器?

考虑这两个类:classA{varx:Intinit(x:Int){self.x=x}convenienceinit(){self.init(x:0)}}classB:A{init(){super.init()//Error:Mustcalladesignatedinitializerofthesuperclass'A'}}我不明白为什么不允许这样做。最终,每个类的指定初始值设定项都会用它们需要的任何值调用,所以为什么我需要通过为指定默认值在B的init中重复自己x再次,当A中的便利init可以正常工作时? 最佳答案 这是Swift

swift - 在 Swift 中覆盖不同类型的父类(super class)属性

在Swift中,有人可以解释如何使用从原始属性子类化的另一个对象覆盖父类(superclass)的属性吗?举个简单的例子:classChassis{}classRacingChassis:Chassis{}classCar{letchassis=Chassis()}classRaceCar:Car{overrideletchassis=RacingChassis()//Errorhere}这给出了错误:Cannotoverridewithastoredproperty'chassis'如果我将底盘改为“var”,则会出现错误:Cannotoverridemutableproperty'

c# - 当父类也实现 IDisposable 时在子类上实现 IDisposable

我有一个父类和子类都需要实现IDisposable。virtual(和base.Dispose()?)调用应该在哪里发挥作用?当我只是重写Dispose(booldisposing)调用时,说我实现IDisposable而没有显式Dispose()函数感觉真的很奇怪(只利用继承的),但拥有其他一切。我一直在做的事情(相当琐碎):internalclassFooBase:IDisposable{SocketbaseSocket;privatevoidSendNormalShutdown(){}publicvoidDispose(){Dispose(true);GC.SuppressFin

c# - C# 子类中的 protected 属性是否应该隐藏对父类公共(public)属性的访问?

我有以下代码:publicclassParent{publicstringMyField{get;set;}}publicclassChild:Parent{protectednewintMyField{get;set;}}我尝试通过以下方式访问它:staticvoidMain(string[]args){Childchild=newChild();child.MyField="something";}Visualstudio2008编译时没有注释,但在Mono(2.4.2,Ubuntu)下我收到错误消息'HideTest.Child.MyField'isinaccessibledue

c# - 如何在没有父类的情况下使用内联变量声明内联对象

我正在尝试做类似的事情:Object[]x=newObject[2];x[0]=newObject(){firstName="john";lastName="walter"};x[1]=newObject(){brand="BMW"};我想知道是否有办法在C#中实现内联声明 最佳答案 是的,有:object[]x=newobject[2];x[0]=new{firstName="john",lastName="walter"};x[1]=new{brand="BMW"};你几乎在那里,只是declarationoftheanonym

c# - 无法从父类转换为子类

我试图从父类转换到子类,但我得到了一个InvalidCastException。子类只有一个int类型的属性。有谁知道我需要做什么? 最佳答案 在C#中向下转型的一种简单方法是序列化父级,然后将其反序列化为子级。varserializedParent=JsonConvert.SerializeObject(parentInstance);Childc=JsonConvert.DeserializeObject(serializedParent);我有一个简单的控制台应用程序可以将动物转换为狗,使用以上两行代码超过here

javascript - 从子类调用父类(super class)函数的正确方法

我有一个以“信息”作为实例变量的“父类(superclass)”。“父类(superclass)”具有函数“printInfo()”。“printInfo()”需要访问实例变量“info”。我想创建一个“子类”,它也有方法“printInfo()”。我想从“SubClass”的“printInfo()”调用“SuperClass”的printInfo()。SuperClass=function(){this.info="Iamsuperclass";console.log("SuperClass:");};SuperClass.prototype.printInfo=function(