谈谈Java面向对象的三大特性

  Java面向对象的三大特性就是指封装、继承、多态了。

   一、封装:

      概念:封装是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。

         (举例:笔记本电脑就是一个封装体,Java语言中最小的封装体就是函数)

      好处:

        将变化隔离

        便于使用

        提高重用性

        提高安全性

      封装原则:

        *将不需要对外提供的内容都隐藏起来。

        *把属性都隐藏,提供公共方法对其访问。

  二、继承:

     *继承的关系是传递的;继承简化了人们对事物的认识和描述,抽象了公共的属性和行为;

      继承提高了一致性,减少程序的维护性;继承是单一继承。

     *子类可以继承父类的属性和方法,但是不能继承private的成员。

     好处:

       *提高了代码的复用性

       *让类与类之间产生了关系,给第三个特征多态提供了前提

  三、多态:

      字面理解,同一类事物的多种存在形态,就是一个对象对应着不同类型。

      在代码中的体现,父类或者接口的引用指向其子类对象。

      多态的必要条件:

        1)必须是类和类之间有关系。要么继承(继承类),要么实现(实现接口)。

        2)通常还要覆盖

      多态的特点:

        1)编辑时:要查看引用变量所属的类中是否有所调用的成员。

        2)运行时:要查看对象所属的类中是否有所调用的成员。

      成员变量:

        1)编译时:参考引用类型变量所属的类中是否有调用的成员变量。有,编译通过,没有,编译不通过。

        2)运行时:参考引用类型变量所属的类中是否有调用的成员变量,并运行该所属类中的成员变量。

        以上通俗讲就是:编译和运行都参考等号的左边,只看引用变量所属的类。(Animal a = new Dog();)

    

原文地址:https://www.cnblogs.com/trister/p/6046432.html