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

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/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值