仅作为个人学习记录~
多态:一个对象具有多种形态。通常指的是运行时多态。
存在的前提:必须有继承关系
多态的种类:编译时多态、运行时多态
在区分多态的两种不同类型之前有必要先了解编译类型和运行类型的概念。编译类型是指在声明变量时所使用的类型(赋值式左边),运行类型是由实际赋给该变量的对象所决定的(赋值式右边)。如Person p=new Student;p.study();引用变量p的编译类型就是Person,运行类型就是Student。当编译类型和运行类型不一致时,就出现所谓的多态。JAVA在编译过程中,会自动检查引用变量p的编译类型,也就是Person类中是否包含study()方法,如果没有,则编译过程就会报错(若study是静态方法,则编译和运行都会调用父类中的方法,无论子类是否覆盖);当Person类中有study()方法,但是在实际JVM运行当中,如果子类Student类中覆盖了study()方法,所以在实际运行中,调用的是子类的study()方法。这种在运行时才能确定执行多态方法中的哪一个就叫做运行时多态。同理,在编译时就能确定运行多态方法中的哪一个就叫编译时多态。典型的编译多态包括方法重载。
多态的好处:使程序具有良好的扩展性,并可以对所有类对象进行通用的处理。
今天也要努力鸭~