什么时候使用抽象类
当两个类有一部分共同的行为实现时应该使用抽象类抽取,有共同行为,但是实现不同,应该使用接口。
假设一个人类的行为包括生存,工作,吃,生存需要工作和吃,每个人工作方式不同,吃饭方式相同,
那么就可以抽象成:
interface 吃able{
fun 吃();
}
abstract 人类 impl 吃able{
abstract fun 工作();
fun 生活(){
this.吃();
this.工作();
}
overwrite fun 吃(){吃饭...}
}
教师:人类{
overwrite fun 工作(){教书育人...}
}
学生:人类{
overwrite fun 工作(){好好学习...}
}
狗 impl 吃{
overwrite fun 吃(){汪汪...}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
而调用时我们应该面向最底层功能,
只有严格要求,我要一个教书育人的老师的时候,才接受教师类型。
如果需要一个能够生活的对象,不关心他怎么工作,那么应该接受一个人类类型。
只需要一个能吃的对象,而不关心是怎么吃的,那么应该接受要一个吃able类型。
上次更新: 10/23/2024