我对swift很新,我对类中函数的定义有疑问。 我想生成几个项目,并给每个项目一个特殊的功能,所以我可以通过itemxy.useitem()运行它们
class item {
var name = "test"
func useitem(){
print("test")
}
}
let staff = item()
staff.name = "Staff"
staff.useitem() // prints: test
*override staff.useitem() = {print("this is a staff")}*
staff.useitem() // prints: this is a staff
如何将新功能与我的项目员工对齐?
答案 0 :(得分:2)
这些并非完全相关,而且是更通用的编程,你不会在这里得到这些问题的答案。在进一步解决问题之前,您应该阅读基本的编程原则。
说过你的问题可以通过继承或协议轻松解决。
class Item {
var name: String
init(name: String) {
self.name = name
}
func use() {
print("using a \(name)")
}
}
class Hat: Item {
override func use() {
print("I put on a \(name)")
}
}
class Pen: Item {
init() {
super.init(name: "Pen")
}
}
let pen = Pen()
pen.use()
let hat = Hat(name: "Beanie")
hat.use()
protocol Item {
var name: String { get set }
func use()
}
extension Item {
func use() {
print("using a \(name)")
}
}
struct Pen: Item {
var name: String
init() {
self.name = "Pen"
}
}
struct Hat: Item {
var name: String
func use() {
print("I put on a \(name)")
}
}
let pen = Pen()
pen.use()
let hat = Hat(name: "Beanie")
hat.use()