Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

iOS Object-Oriented Swift Inheritance Overriding Methods

Jason Teo
PLUS
Jason Teo
Courses Plus Student 8,398 Points

What's wrong with my code?

it says I am not override any methods from the super class

Button.swift
class Button {
  var width: Double
  var height: Double

  init(width:Double, height:Double){
    self.width = width
    self.height = height
  }

  func incrementBy(points: Double){
    width += points
    height += points
  }
}

class RoundButton: Button {
  var cornerRadius: Double = 5.0

  override func incrementBy(_ points: Double = 7.0) -> Double {
  return super.incrementBy(points)
  }
}

1 Answer

Chris Shaw
Chris Shaw
26,676 Points

Hi Jason,

You have more code than what you need to have for this challenge.

  1. You've changed the method signature by adding the return type of Double, this isn't needed
  2. You're calling the method incrementBy of the super class which isn't needed

The code you should have is as follows.

class RoundButton: Button {
  var cornerRadius: Double = 5.0

  override func incrementBy(_ points: Double = 7.0) {
  }
}

Happy coding!

Hi Sir, if i want to assign the value of double in the body of override method , how would i do it

            <p>class Button {

    var width: Double
    var height: Double

    init(width:Double, height:Double){

        self.width = width        
        self.height = height

    }

    func incrementBy(points: Double) -> Double {

      return   += points   // how do i return the increment value here

        width += points 
        height += points

        return points

    }}

class RoundButton: Button {

  var cornerRadius: Double = 5.00

    override  func incrementBy(points: Double) -> Double // i mean if i keep it Double instead of 7.0
{

     return   super.incrementBy(7.0)

    }

}

 var round = RoundButton(width: 5.00, height: 10.00)

RoundButton.incrementBy(7.0) // i can call it here aswell right

! </p>```

also kindly tell me how do i markdown my code ... i am sorry but i have wasted 20 minutes on that too