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

    1:什么是多态?

              多态:同一个引用类型,使用不同的实例而执行不同操作(父类引用指向子类对象)

    2:实现多态的三个要素:

              继承关系,子类重写父类方法,父类的引用指向子类的对象

    3:实现多态的俩种形式

          (1)     使用父类作为方法形参实现多态

             (eg:使用多态优化主人给宠物喂食

                      public  class Master{                                                Pet  pet=new Dog();

                                 public void feed(Pet pet){                               Master  master=new master();

                                          pet.eat();     使用父类作为                      master.feed(pet);

                       }           }                             方法形参                          ........     同一种操作方式,                                       )                                                                                           不同的操作对象

                       在使用该形式时要注意主人类和测试类的变化,在参数位置进行添加父类。     

    (2) 使用父类作为方法返回值实现多态

                       eg:public class Master{

                                     public Pet getPet(String typeld){

                                     ...............}

                            }

                                实现思路:在Master类中进行一个方法的添加该方法就是父类后面的方法

                                                   然后在测试类中,根据编号来进行实现

                          在使用该形式时要注意父类在其返回值那块,并且没有返回值类型,在父类后

                   紧跟着一个方法,在方法中会有一个定义的数据类型 以及其定义的对象,方法里则

                   为自己需要进行的详细代码步骤

    4:父类到子类的转换

             从父类直接变成子类(不允许)

             向下转型(强制类型转换)Son  s=(son) f 

              子类继承父类所有财产中,子类可编程父类

         向上转型(自动转换类型)F  f =new Son();

    5:instanceof运算符

              对象  instanceof  类或接口

                instanceof通常和强制类型转换结合使用

    6:父转子为不安全,子转父为安全

    7:object 类对象可以强制转换任何类型而不发生编译错误

         任何非object类型的数据都需要强制类型转换才能转换成object类型的数据

         以上说法均为错误的

    8:object 整个大类

          父类引用指向子类对象,这时父类不能调用子类独有的属性和方法,必须进行向下转型

                (强制转换)

           子类重写父类的方法不是独有的,可以用父类调用子类的重写方法

    9:一个抽象父类让一个抽象的子类继承:

        建下一个类可以是   public abstract  class  /   public class

                                          方法体可不重写                  必须重写方法

    10:多态的优点

                         减少类中的代码量,

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

                          开发效率高

    11:多态:

              子类转化为父类后,main方法中调用普通方法时依旧是子类的方法

             类型转换带来的作用就是多态

              子类继承父类的所有方法但子类可以重新定义一个名字(重写)

               子类方法优先级高与父类

  • 相关阅读:
    CMake使用教程
    非常陌生的cmake
    C#绘制立体三维饼状图
    有关C,C++,C#, Java的图形图像处理类库 整理(未完待续)
    Eclipse安装Maven插件报错
    WebLogic11g-常用运维操作
    WebLogic之eclipse安装WebLogic插件
    The server does not support version 3.0 of the J2EE Web module specification
    Project facet Java version 1.8 is not supported解决记录
    Weblogic部署项目三种方式
  • 原文地址:https://www.cnblogs.com/zjx-959/p/13038169.html
Copyright © 2011-2022 走看看