class Place { let what: String let location:GeoLocation // 每个类必须要有一个init初始化方法 init (what: String,location: GeoLocation) { self.what = what self.location = location } /*** convenience区别于init方法,一个类中可以有多个convenience初始化方法 在每一个convenience初始化方法中必须有一个本类中的指定初始化方法,(self.init),因为convenience并不是非常全面的对本类中的所有属性初始化,如果不调用将报错***/ convenience init(what: String,latitude: Double,longitude:Double) { let location = GeoLocation(latitude: latitude,longitude: longitude) self.init(what: what,location: location) } } //Class的继承 class PlaceOfInterest:Place { let year: Int16 init(what:String,year: Int16,longitude: Double) { self.year = year// 对本类中的属性初始化 let location = GeoLocation(latitude:latitude,longitude:longitude) super.init(what: what,location:location)// 必须调用父类中的指定初始化方法,不能调用父类中的convenience初始化方法 } }