谈谈对面向对象三大特性:封装,继承,多态的理解

前言:万物皆对象!

面向对象简称 OO(Object Oriented),20 世纪 80 年代以后,有了面向对象分析(OOA)、 面向对象设计(OOD)、面向对象程序设计(OOP)等新的系统开发方式模型的研究。

封装:

         封装是将代码及其处理的数据绑定在一起的一种编程机制,该机制保证了程序和数据都不受外部干扰且不被误用。封装的目的在于保护信息,使用它的主要优点如下。

♦️ 可以保护类中的信息,防止外部代码随意访问内部代码或数据

♦️ 增强了代码得复用性

♦️ 简化代码,看起来更容易懂

♦️ 一个功能只能为这个功能服务,形成一对一

♦️ 隐藏不必要出现的信息,实现细节

🏁封装的实现:

1.访问修饰符:          封装性从上到下越来越差

 

🏁this关键字: 

   1.this关键字代表当前对象

        this.属性 操作当前对象的属性

  this.方法 调用当前对象的方法

🏁Java 中的内部类

🏁内部类( Inner Class )就是定义在另外一个类里面的类。与之对应,包含内部类的类被称为外部类。

内部类的作用:

        1. 内部类提供了更好的封装,可以把内部类隐藏在外部类之内,不允许同一个包中的其他类访问该类。

  2. 内部类的方法可以直接访问外部类的所有数据,包括私有的数据

  3. 内部类所实现的功能使用外部类同样可以实现,只是有时使用内部类更方便。

继承:

       继承是类与类的一种关系,就是儿子继承父亲这种关系,比如猫是动物,那么,动物类就是父类,猫类就是子类。

注:java中的继承是单继承,即一个类只有一个父类,但一个父类可以有多个子类。

🏁继承的好处

 子类拥有父类的所有属性和方法(除了private修饰的属性不能拥有)从而实现了实现代码的复用;

🏁方法的重写 

          子类如果对继承的父类的方法不满意(不适合),可以自己编写继承的方法,这种方式就称为方法的重写。当调用方法时会优先调用子类的方法。

注意:返回值类型,方法名,参数类型及个数都与父类的方法相同才叫方法的重写

🏁继承的初始化顺序   

      父类对象属性初始化---->父类对象构造方法---->子类对象属性初始化--->子类对象构造方法

🏁final关键词

       1. final 修饰类,则该类不允许被继承。

  2. final 修饰方法,则该方法不允许被覆盖(重写)

       3. final 修饰属性,则该类的该属性不会进行隐式的初始化,所以 该final 属性的初始化属性必须有值,或在**构造方法中赋值(但只能选其一,且必须选其一,因为没有默认值!),**且初始化之后就不能改了,只能赋值一次

  4. final 修饰变量,则该变量的值只能赋一次值,在声明变量的时候才能赋值,即变为常量

🏁super关键字

     在对象的内部使用,可以代表父类对象。

        1、访问父类的属性:super.name

   2、访问父类的方法:super.sum()

要注意的是:如果子类构造方法中既没有显示调用父类的构造方法,而父类没有无参的构造方法,则编译出错

多态:

        多态性体现在父类中定义的属性和方法被子类继承后,可以具有不同的属性或表现方式。多态性允许一个接口被多个同类使用,弥补了单继承的不足。

🏁多态的前提:

      1. 继承或者实现
      2. 方法的重写
      3. 父类引用指向子类对象(向上转型)

🏁实现形式:
    在Java中有两种形式可以实现多态:继承和接口。

1.  继承实现的多态 :

       对于引用子类的父类类型,在处理该引用时,它适用于继承该父类的所有子类,子类对象的不同,对方法的实现也就不同,执行相同动作产生的行为也就不同。

      如果父类是抽象类,那么子类必须要实现父类中所有的抽象方法

2. 接口实现的多态

      指向接口的引用必须是指定这实现了该接口的一个类的实例程序,在运行时,根据对象引用的实际类型来执行对应的方法。

     继承都是单继承,只能为一组相关的类提供一致的服务接口。但是接口可以是多继承多实现,它能够利用一组相关或者不相关的接口进行组合与扩充,能够对外提供一致的服务接口。所以它相对于继承来说有更好的灵活性。

     

                         

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值