kotlin.jpeg
委托和代理
- 委托是把事物托付给别人或别的机构办理
- 代理是指以他人的名义,在授权范围内进行对被代理人直接发生法律效力的法律行为。代理的产生,可以是受他人委托
kotlin 接口代理
by
delegate.jpeg
在之间我们 move 这个方法放在 Human 这个抽象类上,让后 XMan 和 Man 来通过继承抽象类 Human 来实现 move 方法,现在我们把表示能力 move 移动到一个接口 IMove 上,然后让他们通过实现接口来实现 move 方法
interface IMove {
fun move();
}
class Man(name: String):Human(name),IMove{
override fun move() {
println("walk...")
}
override fun walk() {
println("normal speed walk")
}
}
我们 XMan 通过 by 来指定 IMove 的代理为 Man
class XMan(name:String):Human(name),IXMan,IMove by Man(name){
override fun specialSkill() {
println("strong...")
}
override fun walk(){
println("walk two seepd ")
}
}
用处就是在 XMan 即使我们没有实现 IMove 接口的 move 方法,因为有代理 Man ,所以就会调用 Man 对 move 的实现方法。
class XMan(name:String):Human(name),IXMan,IMove by Man(name){
override fun specialSkill() {
println("strong...")
}
override fun move() {
println("flay")
Man(name).move()
}
override fun walk(){
println("walk two seepd ")
}
}
其实我们在每次调用 Man(name)
kotlin_end.jpg