Dra-M Dra-M
首页
技术
冥思
哲学
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

莫小龙

保持理智,相信未来。
首页
技术
冥思
哲学
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • Java

    • JUC

    • Spring

    • Gradle

    • 面向对象

      • 什么时候使用抽象类
    • Stream流式编程思想及常用API介绍
    • JAVA快速导出Excel
  • Golang

  • 编程思想

  • 微服务

  • 中间件

  • Python

  • 运维

  • 技术
  • Java
  • 面向对象
莫小龙
2020-07-08

什么时候使用抽象类

当两个类有一部分共同的行为实现时应该使用抽象类抽取,有共同行为,但是实现不同,应该使用接口。

假设一个人类的行为包括生存,工作,吃,生存需要工作和吃,每个人工作方式不同,吃饭方式相同,

那么就可以抽象成:

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

而调用时我们应该面向最底层功能,

只有严格要求,我要一个教书育人的老师的时候,才接受教师类型。

如果需要一个能够生活的对象,不关心他怎么工作,那么应该接受一个人类类型。

只需要一个能吃的对象,而不关心是怎么吃的,那么应该接受要一个吃able类型。


#编程思想#面向对象
上次更新: 10/23/2024
在Gradle中使用jib自动打包
Stream流式编程思想及常用API介绍

← 在Gradle中使用jib自动打包 Stream流式编程思想及常用API介绍→

最近更新
01
mosquito配置ws协议
10-23
02
Pip包的离线下载和安装
10-23
03
stable diffusion 相关收藏
02-24
更多文章>
Theme by Vdoing | Copyright © 2019-2024 Dra-M
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式