20. java多态的实现原理。
多态可以理解为 “引用”,对于面向对象,多态分为编译时多态和运行时多态。
其中编辑时多态是静态的,主要指方法的重载,它是根据参数列表的不同(个数、类型)来区分不同的函数,通过编辑之后会变成两个不同的函数,在运行时谈不上多态。
而运行时多态是动态的,它是通过动态绑定来实现的,也就是我们所说的多态性。
所以可以这样理解:(可以结合这个定义及下面的代码实例)
指向子类的父类引用由于向上转型了,它只能访问父类中拥有的方法和属性(比如定义为父类对象,创建子类对象);而对于子类中存在而父类中不存在的方法,该引用是不能使用的,尽管是重载该方法。若子类重写了父类中的某些方法,在调用该些方法的时候,必定是使用子类中定义的这些方法(动态连接、动态调用)。
package com.polymorphic;
/**
* @author:Mars
* @see:
* @创建日期:2018年1月29日
* @功能说明:
*/
public class FatherDemo {
public void method1(){
System.err.println("I'm father...");
}
public void method2(){
System.err.println("I'm father method2...");
}
}
package com.polymorphic;
/**
* @author:Mars
* @see:
* @创建日期:2018年1月29日
* @功能说明:
*/
public class SonDemo extends FatherDemo{
public void method1(){
System.err.println("I'm son...");
}
public void method3(){
System.err.println("I'm son method3...");
}
}
参考几篇不错的博文
建议大家收藏下该作者的博客,可以深入学习。
http://hxraid.iteye.com/