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 trialDavis Meissner
1,179 PointsIt is telling me numberOfSeats not initialized in super.init but when i add it it tells me i have an extra argument
So like I said in the title.... I am stumped.
class Vehicle {
var numberOfDoors: Int
var numberOfWheels: Int
init(withDoors doors: Int, andWheels wheels: Int) {
self.numberOfDoors = doors
self.numberOfWheels = wheels
}
}
class Car: Vehicle {
let isCar: Bool = true
var numberOfSeats: Int
init(withDoors doors: Int, andWheels wheels: Int, andSeats seats: Int){
super.init(withDoors: doors, andWheels: wheels, andSeats: seats)
self.numberOfSeats = seats
}
}
let someCar = Car(withDoors: 4, andWheels: 4, andSeats: 4)
2 Answers
Steven Deutsch
21,046 PointsHey Dave Meissner,
The challenge wants you to create a new property in your Car subclass, numberOfSeats, with a default value of 4. Because it is a default value, you don't need to initialize it. Therefore, you don't have to pass another parameter into the initializer.
class Vehicle {
var numberOfDoors: Int
var numberOfWheels: Int
init(withDoors doors: Int, andWheels wheels: Int) {
self.numberOfDoors = doors
self.numberOfWheels = wheels
}
}
// Enter your code below
class Car: Vehicle {
var numberOfSeats = 4
override init(withDoors doors: Int, andWheels wheels: Int) {
super.init(withDoors: doors, andWheels: wheels)
}
}
let someCar = Car(withDoors: 4, andWheels: 4)
Note: You don't even need an initializer for this subclass because you will automatically use the initializer of the parent class since no new properties need to be initialized.
class Vehicle {
var numberOfDoors: Int
var numberOfWheels: Int
init(withDoors doors: Int, andWheels wheels: Int) {
self.numberOfDoors = doors
self.numberOfWheels = wheels
}
}
// Enter your code below
class Car: Vehicle {
var numberOfSeats = 4
}
let someCar = Car(withDoors: 4, andWheels: 4)
Hope this helps! Good Luck!
Mohamed Araby
Courses Plus Student 1,589 Pointsthanks for help @Steven Deutsch ,