面向对象三大特征及其优劣&&接口的特点、抽象类的特点

简单介绍下面向对象三大特征?

封装:封装指的就是把对象的属性隐藏在内部,不允许外部对象直接访问内部信息,但是可以提供一些被外界访问的方法来访问属性。优点在于数据隐藏(通过定义私有属性,避免直接访问和修改对象的数据,提高数据的安全性和可靠性)、隔离复杂性(封装将类的实现细节隐藏起来,只暴露必要的接口给外部使用者,减少了对外部的依赖,降低了类与类的复杂性)、提供公共接口(通过封装、定义公共接口,对外提供统一的访问和操作方式,提供更好的交互方法、便于使用和维护);缺点在于使用不当可能会导致属性过度保护或者过度开放。
继承:继承指的就是一个类通过extends关键字来继承另一个类型,子类可以直接使用父类的非私有属性和方法,并且可以覆盖父类的方法,从而实现自己的行为。优点在于代码复用(子类可以直接使用父类的方法和属性,避免了重复编写相同的代码,提高了代码复用性),扩展性(子类可以在继承父类的继承上进行修改和扩展,添加新属性和方法,满足不同需求),(继承建立了对象之间的关系,通过继承可以形成类的体系结构,使得程序逻辑更加清晰和有组织性)。缺点在于如果结构过于复杂,层次过深,会增加类之间的关系和依赖,理解与维护代码会更加困难。有着较强的耦合关系,父类去修改的话会影响所有子类,单一继承限制(可以通过接口来解决)
多态:多态指的是一个对象有多个形态,具体的实例就是父类的引用指向子类的实例。优点在于代码的灵活性(我们可以通过统一的接口来操作不同的对象,从而提高代码的灵活性和可维护性,当需求更新时候我们只需要更换具体的子类对象,无须修改现有的代码)、实现接口的透明性(可以将对象的实际类型隐藏起来,只关注接口定义的方法。)、实现方法的回调(通过多态,可以将一个对象作为参数传递给其他方法,从而实现方法的回调,这在事件处理、回调函数的场景中非常实用,可以让程序在运行时候决定具体调用哪个方法)、提高了代码的可读性和可维护性。缺点是简单功能的过度抽象化(使用多态会导致有些功能被过度抽象,无法直接调用子类特定方法,限制了某些具体功能的使用。)、运行时开销(在运行时候要通过动态绑定和虚函数表等机制确定方法调用,额外的运行时开销会对性能产生影响)、引入复杂性。

接口

  1. 有Interface定义
  2. 可以包含常量方法、抽象方法、静态方法(1.8后)、默认方法(1.8后)、私有方法(1.9后)
  3. 实现类通过implements来实现
  4. 可以多实现
  5. 接口中的成员访问权限只能是public(默认是public权限),接口中的成员变量必须是public static final修饰必须有初始值

抽象类

  1. 由abstract来修饰
  2. 可以包含变量、常量、构造方法、普通方法、静态方法、抽象方法(不需要有方法体)
  3. 子类通过extends来继承
  4. 只能单一继承
  5. 抽象类中的成员,任何访问权限都可以(默认为默认权限(同包中))
  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值