当前位置: 首页 > news >正文

面向对象的三特性

  1. 继承

Java中通过继承,子类可以获取父类的属性和方法,不需要自己去定义即可获取,可以提高代码的复用性;同时,子类如果对继承的方法不满意,可以自己重写方法,进行个性化定制。

好处:提高代码的复用率。

  1. 封装

封装就是将对象的属性和操作打包起来,并尽可能地隐藏对象内部的具体细节。在面向对象的程序设计中,具体表现为:1、一个对象的私有属性和私有方法是对外隐藏的,只能通过对象中的共有方法进行间接访问,场景对应于我们平时写一些 vo、dto、entity等一些JavaBean实体类.

好处:防止对象数据(属性)被外部随意操作,一切对数据的操作必须按规定的方法来。

  1. 多态

多态是指同一个行为(抽象方法)具有可以表现出多种状态的能力。例如,一个接口中的一个抽象方法,不同的实现可以表现出不同的状态。或者,一个父类中的方法被不同的子类重写所变现出不同的状态。因此,我们只要记住一对多,即一种行为多种状态。存在条件是:1、子类继承父类并重写父类方法,同时对外以父类中的原始行为为入口。即写法需要  Father father = new Son();2、一个接口被实现,同时对外也以接口为入口,写法为:Interface interface = new InterfaceImpl().

对于多态中两种场景的思考,我个人觉得,接口和实现类的关系是父类和子类在特殊场景下的一种表现。即父类没有成员属性,同时子类继承父类并重写父类的全部方法。

好处:提高代码的灵活性,可扩展性、修改子类不影响调用方。

弊端:子类中特有的方法不能被使用。无法通过父类调用到子类中特有的方法,无法通过接口调用到实现类中特有的方法。

http://www.lryc.cn/news/16733.html

相关文章:

  • 管理者如何给员工沟通绩效
  • 使用Python启动appium
  • 活动回顾丨研发效能度量线下沙龙圆满举办
  • 问题解决篇 | Win11网络连接上了但是无法上网(修改DNS弹出框框“出现问题”,如何通过网络检测确定并修复网络问题)
  • Go语言进阶与依赖管理-学习笔记
  • 【Mybatis源码分析】datasource配置${}表达式时是如何被解析的?
  • 网络基础概述
  • 微搭使用笔记(四) 通过循环展示组件+json配置生成表单及数据获取
  • 做测试5年,靠业务熟悉吃老本,技术短板暴露,30岁被无情辞退...
  • Linux系统安装MySQL8.0版本详细教程【亲测有效】
  • [论文阅读笔记19]SiamMOT: Siamese Multi-Object Tracking
  • unix高级编程-fork和execve
  • Vue3+Ts+Vite开发插件并发布到npm
  • CAN TP层函数介绍
  • Spring架构篇--2.5 远程通信基础Select 源码篇--window--Select.open()
  • WEB静态交互展示【数据mock】
  • (4)C#传智:分支Switch与循环While(第四天)
  • Stable-Baselines 3 部分源代码解读 2 on_policy_algorithm.py
  • 15. Qt中OPenGL的参数传递问题
  • 注意,这本2区SCI期刊最快18天录用,还差一步录用只因犯了这个错
  • Could not find resource jdbc.properties问题的解决
  • 【面试题】==与equals区别、Hashcode作用、hashcode相同equals()也一定为true吗?泛型特点与好处
  • Flex布局中的flex属性
  • SpringBoot + Ant Design Pro Vue实现动态路由和菜单的前后端分离框架
  • robotframework自动化测试环境搭建
  • 尚硅谷《Redis7》(小白篇)
  • 并非从0开始的c++ day6
  • PMP考前冲刺2.22 | 2023新征程,一举拿证
  • RxJava的订阅过程
  • 【2.22】MySQL、Redis、动态规划