objective c - May I implement one function of protocol in subclass? -
i modified it. problem if want have subclass inherit baseparticipant, may re-implement func performevent
inside subclass? example:
class cyclingparticipant: baseparticipant, participant { init(name: string) { super.init(name: name, preferredevent: event.cycling) } func performevent(event: event, distance: distance) throws { } }
but compiler said "redundant conformance of cyclingparticipant protocol participant .
class baseparticipant: participant { var name: string var preferredevent: event var racetime: int var couldnotfinish: bool //var performedevent: event // in swift, class accepts protocol must impletment funcs inside protocol init(name: string, preferredevent: event) { self.name = name self.preferredevent = preferredevent self.racetime = 0 self.couldnotfinish = false } func getname() -> string { return self.name } func getpreferredevent() -> event { return self.preferredevent } func isdisqualified() -> bool { return self.couldnotfinish } func addtime(addtionalracetime:int) -> void { self.racetime += addtionalracetime } func setcouldnotfinish() -> void { self.couldnotfinish = true } func performevent(event: event, distance: distance) throws -> int { return 1 } func gettime() throws { } }
the code of protocol participant:
protocol participant { func getname() -> string func getpreferredevent() -> event func isdisqualified() -> bool func performevent(event: event,distance: distance) throws ->int func addtime(addtionalracetime: int) func setcouldnotfinish() func gettime() throws }
you're missing implementation of gettime()
function listed in protocol. also, should post such questions on piazza. :p
[updating answer reworded question]
the baseparticipant
class adopts participant
protocol, cyclingparticipant
subclass should not declare adopts also, causing redundant conformance error. because baseparticipant
participant
, subclass of baseparticipant
participant
.
change:
class cyclingparticipant: baseparticipant, participant
to:
class cyclingparticipant: baseparticipant
Comments
Post a Comment