5、面向对象-封装、抽象、继承、多态

每个特性存在的意义和目的,以及要解决哪些编程问题。

一、封装 Encapsulation

封装也叫数据隐藏或者数据访问保护。类通过暴露有限的访问接口,授权外部仅能通过类提供的方式(函数)来访问内部信息或者数据。
封装需要编程语言本身提供访问权限控制语法机制,来达成隐藏信息和保护数据的目的。

意义:

可控性: 如果对类中属性的访问不做限制,那任何代码都可以访问、修改类中的属性。
易用性: 类仅仅通过有限的方法暴露必要的操作,可以提高类的易用性。只暴露少许几个必要的方法,调用者用错的概率就减少很多。

二、抽象 Abstraction

抽象是指隐藏方法的具体实现,调用者只需要关心方法提供了哪些功能,并不需要知道这些功能是如何实现的。
通过函数包裹具体的实现逻辑,这本身也是抽象。即通过函数的命名、注释、文档来了解其提供了什么功能,而不需要去研究函数内部的实现逻辑。
在面向对象编程中,我们常使用编程语言提供的接口类或抽象类这两种语法机制来实现抽象特性。

抽象是一个非常通用的设计思想,不单单用在面向对象编程中,也可以用来指导架构设计。因为只需要提供函数这一基本语法机制,就可以实现抽象特性,没有很强的特异性,所以它有时候不被看作面向对象编程的特性之一。

意义:

降低复杂性: 调用者只需关注功能点不需关注实现,帮助过滤非必要的信息。
指导了代码设计: 很多设计原则都体现了抽象设计思想,如解耦、开闭、基于接口而非实现

三、继承 Inheritance

继承用来表示类之间的is-a关系,如汽车是交通工具、机械。包括单继承、多继承。
不过如果过度使用,会导致可读性、可维护性变差;另外子类和父类高度耦合,修改父类代码会直接影响子类。

意义:

代码复用: 多个子类重用父类中的代码,不过也可以用组合来解决这个问题。
易读: 反应真实世界中的关系,符合人类的认知

四、多态 Polymorphism

子类替换父类,即父类引用指向子类对象,在实际的代码运行过程中,调用子类的方法实现。
多态也需要编程语言提供特殊的语法机制来实现:
1、要支持父类对象可以引用子类对象。
2、要支持继承或实现接口类。
3、要支持子类可以重写(override)父类的方法。

动态语言特有的的duck-typing:只要两个类具有相同的方法,就可以实现多态,并不需要两个类之间有任何关系。

意义:

可扩展性、复用性
是很多设计模式、设计原则、编程技巧的代码实现基础: 比如策略模式、基于接口而非实现编程、依赖倒置原则、里式替换原则、利用多态去掉冗长的 if-else 语句等等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
封装面向对象编程的一项基本原则,它将数据与操作数据的方法打包在一起,以实现数据的安全性和可维护性。在Java中,封装主要通过使用访问修饰符来实现。 继承面向对象编程的另一项重要原则,它允许一个类继承另一个类的属性和方法,以减少代码的重复性并增加代码的可复用性。在Java中,继承通过使用关键字“extends”来实现。 多态面向对象编程的又一重要原则,它允许一个对象在不同的环境中表现出不同的行为。在Java中,多态主要通过方法的重写和方法的重载来实现。 对于educoder java面向对象封装继承多态的问题,我们可以通过以下方式回答: 在面向对象编程中,封装是通过使用访问修饰符来保护类的属性和方法,使其不被外部访问和修改。封装可以提高代码的可维护性和安全性。 继承面向对象编程的一项重要特性,它允许一个类继承另一个类的属性和方法,并且可以添加或修改这些属性和方法。通过继承,我们可以减少代码的重复性,增加代码的可复用性。 多态面向对象编程的一项核心原则,它允许一个对象在不同的环境中表现出不同的行为。多态可以通过方法的重写和方法的重载来实现,在Java中,我们可以通过实现接口、使用抽象类和使用重载等方式来实现多态性。 总的来说,封装继承多态面向对象编程的三项重要概念,它们共同构建了面向对象编程的基础。在Java中,我们可以通过使用访问修饰符来实现封装,通过使用“extends”关键字来实现继承,通过方法重写和重载来实现多态。这些概念和技术能够帮助我们创建更加可维护、可扩展和高效的代码

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值