Welcome to the Treehouse Community

The Treehouse Community is a meeting place for developers, designers, and programmers of all backgrounds and skill levels to get support. Collaborate here on code errors or bugs that you need feedback on, or asking for an extra set of eyes on your latest project. Join thousands of Treehouse students and alumni in the community today. (Note: Only Treehouse students can comment or ask questions, but non-students are welcome to browse our conversations.)

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and a supportive community. Start your free trial today.

iOS Object-Oriented Swift 2.0 Class Inheritance Overriding Methods

Alex Nelsen
PLUS
Alex Nelsen
Courses Plus Student 2,977 Points

I am having trouble with class and super class in their challenge.

I believe I have the majority of this correct but I am not sure. Please have a look.

classes.swift
class Person {
    let firstName: String
    let lastName: String

    init(firstName: String, lastName: String) {
        self.firstName = firstName
        self.lastName = lastName
    }

    func getFullName() -> String {
        return "\(firstName) \(lastName)"
    }
}

// Enter your code below
class Doctor: Person {
    override init(firstName: String, lastName: String) {
        super.init(firstName: firstName, lastName: lastName )

        func someDoctor() ->String {
            return "Dr. \(lastName)"
        }


}


let someDoctor = Doctor(lastName: "Smith")

1 Answer

Michael Reining
Michael Reining
10,101 Points

Hi Alex,

The answer is actually a lot simpler than the code that you provided.

All you have to do in the new Doctor class is to override the getFullName method. You do not need to create a custom initializer since it will just inherit the initializer from the super class.

As always, if you try to create the code in the Playground in Xcode you will get more helpful error messages and see what is happening as you change the code. Really an excellent way to learn and makes code challenges much easier to solve.

Here is the code

// Enter your code below
class Doctor: Person { // Create new class

    override func getFullName() -> String { // Override method
        return "Dr. \(lastName)" // Update return string
    }


}

let someDoctor = Doctor(firstName: "Mike", lastName: "Reining")
someDoctor.getFullName() // for testing in playground you can see that it works

I hope that helps,

Mike

PS: If you found the above helpful, be sure to check out my app which breaks code challenges down and really explains things so you can learn faster.

Code! Learn how to program with Swift

https://itunes.apple.com/app/code!-learn-how-to-program/id1032546737?mt=8

PPS: I could not have developed the above app without going through the awesome resources on Team Treehouse. Stick with it. It is so worth it!