10.3. Inheriting a super class and adopting protocols together
//super class Student...
class Student{
var name: String
init(name:String) {
self.name = name
}
}//UndergradTA inherits Student, and adopts/conforms TeachingAssistant protocol...
class UndergradTA: Student, TeachingAssistant{
//own property course...
var course:String
//initializer for UndergradTA...
init(name: String, course:String) {
self.course = course
super.init(name: name)
}
//defining adopted methods from TeachingAssistant...
func biweeklyPayment() -> Double {
return 1_500.00
}
func completeTraining() {
print("\(name) completed the TA training.")
}
func rate() -> Int {
return 5
}
// own describe method of UndergradTA...
func describe(){
print(
"""
\(name) is a TA of \(course) course.
They were rated \(self.rate())/5 by the professor.
They are paid \(self.biweeklyPayment()) biweekly.
"""
)
self.completeTraining()
}
}
Reference code
Last updated