java之多态(一)
一、Java 中实现多态的机制是什么? 靠的是父类或接口定义的引用变量可以指向子类或具体实现类的实例对象,而程序调用的方法在运行期才动 态绑定,就是引用变量所指向的具体实例对象的方法,也就是内存里正在运行的那个对象的方法,而不是引用变 量的类型中定义的方法。 多态是继封装、继承之后,面向对象的第三大特性。现实事物经常会体现出多种形态,如学生,学生是人的一种,则一个具体的同学张三既是学生也是人,即出现两种形态。 Java作为面向对象的语言,同样可以描述一个事物的多种形态。如Student类继承了Person类,一个Student的对象便既是Student,又是Person。一个Student对象既可以赋值给一个Student类型的引用,也可以赋值给一个Person类型的引用。 最终多态体现为父类引用变量可以指向子类对象:父类类型 变量名 = new 子类类型(); 1、多态的前提是必须有子父类关系或者类实现接口关系,否则无法完成多态。 2、在使用多态后的父类引用变量调用方法时,会调用子类重写后的方法。 二、多态的三种形式: 1、 普通类多态定义的格式 父类 变量名 = new 子类(); class Fu {} class Zi extends Fu {} //类的多态使用 Fu f = new Zi(); 2、 抽象类多态定义的格式 abstract class Fu {