关于向上转型和向下转型(转)

 对象类型的方法与对象的关联是通过指针来完成的,比如:
                 Super sup = new Super();
单从方法而言,在构造结束后,sup对象内部会有一个指向存储在堆中的hi()方法的指针;
                 sub s1 = new sub();
由于sub类是 Super类 子类,构造s1的过程是:先调用父类的构造方法,构造出父类对象,于是有了指针1,指向Super的hi()方法;然后构造其余部分,指针2,指向sub 的bye()方法,子类发现重载hi()重载了,指针1定位到sub()的hi()方法!

子类对象的方法指针分为两类:
1.基类的方法:先指向父类的方法,在构造自己的时候,如果是重载再指向自己的重载方法;
2.自己的新方法:指针在构造自己的时候定位方法;

举例:

向上转型
                Super ob1 = new sub();
ob1在sub()类型对象完成构造后,方法指针都已经正确指定方法,发现自己是个Super对象引用,于是被限定只能使用从基类继承或重载的那部分方法。

                sub ob2 = (sub)ob1;

ob1被重新评定为 (sub)对象引用,再把对象地址赋给ob2,ob2指向了原先new出的对象,且它是
sub类型的,所以可以访问子类的新方法了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值