zoukankan      html  css  js  c++  java
  • 面向对象多态

    1.多态:

        定义:同一父类的不同子类,在处理同一行为时,有不同的表现。就是

    多态。

        学习多态的原因?

             提高代码的可扩展性和可维护性。

      
    2.实现多态的步骤:

         A.父子类继承

         B.子类重写父类方法:

         C.调用时,声明父类 new 子类。

     
    3."声明父类 new 子类" 介绍:

       1.创建父类引用,指向子类对象。


          A.该对象,可以直接使用父类的所有属性和【方法】;但是子类特有属

    性和方法,却无可奈何?

          B.如果子类没有重写父类的方法,那么该对象调用的是父类的方法。

          C.如果子类重写了父类中的方法,那么该对象调用的是子类重写后的

    方法。


    4.多态的表现形式分为两种:

        A。父类做参数:


        B。父类做返回值类型:
     

    5.类型转换:

        解决 :声明父类new 子类 ,创建出来的对象,不能调用子类特有属性

    和方法的问题。


        A。向上转型:声明父类new 子类

                    1.调用父类里的属性和方法

                    2.调用子类重写的方法

                    3.不能调子类特有的属性和方法


        B。向下转型: 子类类型  对象名1=(子类类型) 对象名2。

                      ---说明:对象名2是通过“声明父类new子类”得到的

    对象。

                      ---存在隐患,如果子类类型转换错误,程序直接报错。

                      ---转换成功后,就可以调用子类特有的方法和属性了。


    6.instanceof  关系运行符。

       学习原因?    避免类型转换异常,从而提高代码的健壮性。

    注意:1.使用interfaceof运算符时,对象的类型必须和interfaceof的第二

    个参数所指定的类或者接口在继承属上有上下级关系,否则会出现编译错误。
     2.interfaceof经常和强制类型转换结合使用。


                  
     

  • 相关阅读:
    maven本地添加Oracle包
    tomcat启动时检测到循环继承而栈溢出的问题:Caused by: java.lang.IllegalStateException: Unable to complete the scan for annotations for web application [/test] due to a StackOverflowError. Possible root causes include
    C# LINQ list遍历并组装返回新查询
    windows server 2016下360wifi安装
    Python获取本机多IP并指定出口IP
    python读取excel和读取excel图片总结
    windows2012/2016/2019 iis自带ftp被动端口修改
    Flutter IOS build成功,archive失败
    centos常用操作
    Git相关操作
  • 原文地址:https://www.cnblogs.com/zhuhuibiao/p/9313873.html
Copyright © 2011-2022 走看看