什么是面向对象?

谈到面向对象,我们不得不说到面向过程。因为面向对象就是从面向过程过渡而来的。

面向过程:就是将一个大的任务分成一条条小的步骤,这些步骤由一个个函数来完成。

而面向对象呢,更加注重这个任务中的参与者,需求里有哪些对象,这些对象完成哪些任务。所以将这个任务拆解成一个个对象和模块,提高了代码的维护性和拓展性。

谈到面向对象我们又不得不提到面向对象的三大特性:封装,继承,多态。

封装:使用访问修饰符修饰,例如public,private。将内部实现细节隐藏,对外只提供公共的访问方法。这样的好处就在于,隐藏了内部实现细节,提高安全性,对外提供公共访问方法,提高代码复用性。封装的意义就在于,隐藏了实现细节,对外的调用者来说是透明的,调用者无需知道内部实现方式,只需要知道这个方法是干什么的就好了。

继承:继承是子类使用extends关键字去继承父类的关系。继承主要用途就是将子类中共有的方法抽取到父类中,比如说共有的属性和方法,更大的提高的代码复用程度。

继承的好处:1,想要使用这些属性和方法的时候,直接调用父类的即可,无需再重新定义,更大程度的提高了代码的复用性。

2,无需再写很多冗余代码,如果需要个性化定义子类方法,在子类中去重写父类方法即可。

多态:多态指同一行为具有不同表现形式和形态的能力。在Java中就是用父类表示子类,同一个父类可以表示不同的子类,父类就有不同状态。

多态存在的三个必要条件:1,继承;2,重写;3,父类引用指向子类对象。

但是多态存在缺点:就是子类向上转型,就无法调用子类方法和属性。处理方法:强转。

使用instanceof(Java中的一个双目运算符)判断实际类型,然后进行强转,否则会报错。

相关推荐
名字还没想好☜27 分钟前
用 Redis + Redisson 实现分布式锁:从踩坑到生产可用
java·redis·分布式·junit·分布式锁·redisson
谙忆34 分钟前
图片CDN与边缘优化实战:缓存策略、图片处理型CDN与动态裁剪
java·spring·缓存
ltqvibe1 小时前
怎么让本体语义变成可执行的智能体
java·人工智能·本体语义
javajenius1 小时前
Masslynx 4.1安装包免费下载及详细安装教程
java·服务器·前端·其他
程序员吕洞宾1 小时前
开源多维表格SmartTable V1.6.1:工作流画布,让自动化工作流配置更直观、更方便
java·开源·自动化
我登哥MVP2 小时前
走进 Gang of Four 设计模式:访问者模式
java·设计模式·访问者模式·原型模式
雪碧聊技术2 小时前
一文深入理解 Java 函数式编程思想
java·函数式编程
AIGS0012 小时前
突破语义鸿沟:从向量空间JBoltAI看企业大脑构建逻辑
java·大数据·人工智能·人工智能ai大模型应用
琢磨先生David2 小时前
OpenJDK 与 Oracle JDK 完整区别
java
倔强的石头1062 小时前
企业智能设备运维管理系统:靠飞算 JavaAI,告别 Java 低效搬砖日常
java