16.5 同步练习
判断正误:整型、浮点型、布尔型、字符串等基本数据类型也可以有扩展机制。
Swift中扩展机制可以在原类型中添加新功能的内容包括( )。
A. 实例计算属性和静态计算属性
B. 实例方法和静态方法
C. 构造器
D. 下标
判断正误:扩展机制可以扩展实例计算属性和静态计算属性。
判断正误:扩展类的时候能向类中添加新的便利构造器,但不能添加新的指定构造器或析构器,指定构造器和析构器只能由原类型提供。
判断正误:类、结构体和枚举,都可以遵守多个协议时,各协议之间用逗号“
,
”隔开。判断正误:如果一个类继承父类的同时也要求遵守协议,应当把父类放在所有的协议之前。
判断正误:在结构体和枚举类型中可以定义变异方法,而在类中没有这种方法。原因是结构体和枚举类型中的属性是不可修改的,通过定义变异方法,可以在变异方法中修改这些属性。
判断正误:虽然协议没有具体的实现代码,不能被实例化,它的存在就是为了规范其他的类型遵守它实现。
有以下协议定义:
protocol Speaker {
class func speak()
}
则下列实现协议的遵守者定义正确的是( )。
A.
class Dog : Speaker {
static func speak() {
println("Wang Wang!")
}
}
B.
class Dog : Speaker {
class func speak() {
println("Wang Wang!")
}
}
C.
struct Cat : Speaker {
static func speak() {
println("Miao Miao!")
}
}
D.
struct Cat : Speaker {
class func speak() {
println("Miao Miao!")
}
}
- 有以下协议定义:
protocol Speaker {
mutating func speak()
}
则下列实现协议的遵守者定义正确的是( )。
A.
class Dog : Speaker {
mutating func speak() {
println("Wang Wang!")
}
}
B.
struct Cat : Speaker {
mutating func speak() {
println("Miao Miao!")
}
}
C.
class Dog : Speaker {
func speak() {
println("Wang Wang!")
}
}
D.
struct Cat : Speaker {
func speak() {
println("Miao Miao!")
}
}
编程题:编写一个
Array
扩展,使其能够计算集合的元素之和。编程题:编写程序包含协议、基类和子类等内容。
编程题:编写程序包含协议、基类、子类和扩展等内容。