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方法中调用普通方法时依旧是子类的方法

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

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

           子类方法优先级高与父类

原文地址:https://www.cnblogs.com/zjx-959/p/13038169.html