java面试系列--J2SE基础(五)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weisong530624687/article/details/79195240

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/

猜你喜欢

转载自blog.csdn.net/weisong530624687/article/details/79195240