关于Java面向对象基本特征的一些理解

本文介绍了面向对象编程的三个核心概念:封装、继承和多态。详细解释了每个概念的意义及在Java中的具体应用,帮助读者理解面向对象的基本原理。

面向对象三个基本特征:1.封装 2.继承 3.多态

一. 封装

  • 封装(encapsulation),也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。

  • Java中封装的具体意义:
    1.便于调用者调用
    2.便于修改内部代码,提高可维护性
    3.可进行数据完整性检测,保证数据的有效性

  • 可使用访问控制符,实现封装:
    →范围越来越大

  • 使用细节:一般使用private (除非本属性确定会让子类继承),要提供相应的get/set方法来访问相关属性,这些方法通常是public,从而提供对属性的读取操作。一些只用于本类的辅助性方法可以用private,希望其他类调用的方法用public。

二. 继承

  • 继承(extends)是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。

  • 通过继承创建的新类称为“子类”或“派生类”。 被继承的类称为“基类”、“父类”或“超类”。继承的过程,就是从一般到特殊的过程。

  • 子类继承父类,可以得到父类的全部属性和方法。《Thinking in Java》中说到,子类对象拥有父类对象的完整拷贝,实例化一个类是从最顶级的超类开始实例化的,是一层一层的包裹结构,private限制访问方式只能在类的内部,这仅仅是一个访问控制,实际上子类对象拥有父类对象的一切。

  • Java中只有单继承(一个类只能有一个直接父类),但可以通过接口实现多继承。
    接口继承是指仅使用属性和方法的名称、但是子类必须提供实现的能力。
    子接口扩展某个父接口,将会获得父接口中所定义的一切。

三. 多态

  • 多态(polymorphism)是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针。

  • 实现多态,有两种方式:

    1. 覆盖(重写override),是指子类重新定义父类方法的做法。
    2. 重载(overload),是指允许存在多个同名函数,而这些函数的参数表不同(或许参数个数不同,或许参数类型不同,或许两者都不同)
  • 多态的作用
    封装可以隐藏实现细节,使得代码模块化;继承可以扩展已存在的代码模块(类);它们的目的都是为了——代码重用。而多态则是为了实现另一个目的——接口重用!多态的作用,就是为了类在继承和派生的时候,保证使用“家谱”中任一类的实例的某一属性时的正确调用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值