封装、继承、多态的知识总结

本文探讨了面向对象编程(OOP)的重要性,主要围绕封装、继承和多态三大核心特性展开。封装强调隐藏对象细节,通过权限控制实现数据保护。继承则允许代码重用,简化系统,子类可以扩展父类特性。多态允许同一接口有不同的实现,增强了程序的灵活性。总结了super关键字在继承中的作用,以及上转型对象和向下转型的概念。通过这些概念,开发者能更好地理解和应用OOP设计原则。
摘要由CSDN通过智能技术生成

面向对象:

⭐为什么要使用面向对象?

1.难以面对现代复杂系统的需求,编程的复杂度急剧上升,代码的冗余度高。

2.关联的信息难以组织和内聚。

3.面向过程的行为所属不明确。

面向对象的三大基本特征:封装、继承、多态。

封装

封装是面向对象方法的重要原则,就是把对象的属性和操作(或服务)结合为一个独立的整体,并尽可能隐藏对象的内部实现细节,控制用户对类的修改和访问数据的程度。

权限控制修饰符:

名称当前类同包不同类子类不同包下面的其他类
private
默认不写
protected
public

继承:

⭐为什么用到继承?重复代码多、难以维护,代码重用,简化系统,减轻负担。

手段方法:

抽取共同属性和行为, 让有些类基于共同类拓展特有属性;

语法:

class 子类名 extends 父类名{……}

⭐直系亲爹只能有一个(一个子类最多只能有一个直接的父类)

子类:

(1)重新定义:

变量隐藏:子类中重新定义父类中已有的变量。

如何访问:子类中访问父类变量 使用关键字super。

(2)重写:子类有个方法与父类的方法完全一致叫做重写。

重写的好处:不同实现、拓展、不影响共同行为。

怎么调用父类同名方法:使用super关键字, super.方法名(参数);

方法重写和重载的对比:

对比项重写(Override)重载(Overload)
位置父类(接口)和子类之间同一个类内,或者父子关系中
方法签名必须一致必须不一致
返回值必须相同(兼容)没要求
数量被一个子类覆盖最多一次数量无限制
注解@Override

super关键字

作用项用法说明
调父类属性访问父类被隐藏的实例变量,如:super.variable
调父类方法访问父类被重写的实例方法,如:super.method(参数);
调用父类的构造函数super()必须是子类构造函数第一个执行的语句,如果super()没有被用到,每个超类的默认的或无参数的构造函数将被执行

⭐super关键字引用的是父类对象,所以不适合在static方法中使用。

多态:

  1. 简单来说,多态是具有表现多种形态的能力的特征

  2. 同一个实现接口使用不同的实例而执行不同操作

  3. 子类重写父类的方法

  4. 编写方法时,使用父类定义的方法

  5. 运行时,根据实际创建的对象类型动态决定使用哪个方法

向上转型

  • 上转型对象会失去子类对象新增的属性和行为(具体与笼统)

  • 可以访问被子类继承的属性、方法、被重写的方法,但不能操作子类新增的成员。

  • 子类重写了父类的某个方法后,上转型对象调用这个方法时一定是执行这个被重写过的方法。

向下转型

        并不是所有的对象都可以向下转型,只有当这个对象原本就是子类对象通过向上转型得到的时候才能够成功转型。

instanceof

  • 必须是该了类的上转型对象才能被成功下溯成该了类对象(对象本身类型兼容本身类型)否则会板类型转换异常

  • 使用instanceof关键字用来判断当前对象是否是类的一个实例。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值