深入理解多态

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深入理解多态相关的知识,希望对你有一定的参考价值。

 

    里氏替换原则和多态的应用

      里氏替换原则(LSP)

      ·在一个软件系统中,子类对象可以替换所有使用的父类对象,

       且程序行为没有变化

      ·父类中的子类进行转换 

        1、SE se = (SE)empls;类型转换

        2、SE se = empls as SE;类型转换,如果不是同一类型,输出null,也会报错

      ·使用父类作为参数使用,可以接收多种子类类型

      ·根据实际传递的子类对象执行相对应子类的方法进行重写

 

    小结:

      用虚方法实现多态的步骤

         @子类重写父类的虚方法

         @两种方式

          创建父类变量,实例化子类对象

          把父类类型作为参数类型,该子类及子类对象作为参数传入

        @运行时,根据实际创建的对象决定执行那个方法

      里氏替换原则

        @子类对象可以代替父类对象,反过来,父类对象不能代替子类对象

        @会使用父类类型作为参数

        @is操作符用于检查对象和指定的类型是否兼容

        @as操作符用于两个对象之间的类型转换

 

    抽象类和抽象方法

      技术分享图片

 

      技术分享图片

          抽象类用来列举一个类所需要的行为

      抽象类不明确提供具体实现方法

      抽象类必须由其子类实现它的抽象方法(除非子类也具有抽象性)

      @抽象类不能被实例化

      @抽象类不能是密封的或静态的(抽象类不能用seald或static修饰)

    抽象类和抽象方法

      @抽象类通常代表一个抽象的概念

      @抽象方法约束子类对象的行为

        @比如:抽象的动物类,具有抽象方法吃()、喝()

    虚方法

      @具体类的默认实现、提供其子类扩展实现方式

        @比如:数据库链接类,Connect()方法实现与SQL Server的链接,数据库链接子类继承并重写,实现与其他数据库的链接

      技术分享图片

 

      面向对象的三大特征

      封装:

        隐藏内部实现,稳定外部接口

      继承:

        子类继承父类成员,实现代码重用

      多态:

        不同子类对同一个消息作出不同的反应

   总结:

      抽象方法

        是一个未实现的方法

        用abstract关键字修饰

        含有抽象方法的类必然是抽象类

      使用抽象方法和虚方法都可以实现多态性

      面向对象的三大特性是封装、继承和多态

      

 

           

 

      

 







以上是关于深入理解多态的主要内容,如果未能解决你的问题,请参考以下文章

多态的深入理解

多态的深入理解

多态的深入理解

多态的深入理解

深入理解多态

深入理解多态