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

Can't figure out what im doing wrong my code

hey guys, Can you take a look at my code below and let me know what I am doing wrong.

Our RoundButton class should have its own implementation of the incrementBy method. Override the incrementBy method in the RoundButton class and default the points parameter to 7.0.

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

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

  override 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 Curtis,

The issue lies with your method signature in RoundButton which doesn't match the method signature in Button, this is because you've added a return type to your override which doesn't exist on incrementBy within the Button class.

Simply remove that and the challenge will pass.

class RoundButton: Button {
  var cornerRadius: Double = 5.0

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

Hey Chris, Thanks for your help.