java View转换类型_有关JAVA类与类之间的强制类型转换,在android ViewPager里面遇到的。...

本文通过一个生动的例子解释了在编程中为什么有时需要进行类型强制转换。通过对比在使用父类引用调用子类方法时是否进行强转的情况,说明了强转对于调试的帮助。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

展开全部

有时候是不需要转的,但是有时候是必须要转的,比方说你写了32313133353236313431303231363533e4b893e5b19e31333335336537一个类A,继承了ViewGroup并且重写了addView方法,但是你重写的addView方法干的事跟ViewGroup不是一件事(比如ViewGroup的addView是增加一个控件,而你重写的addView方法只是打印了一句话而已),只是凑巧名字一样了而已。你传入的对象是A,如果你不强转,那么编译能通过(因为语法没问题啊),但是运行时效果没出来,那你就得费九牛二虎之力去找问题出哪儿了。如果你加上强转呢?就会报类型转换异常,因为A跟ViewPager是没有继承关系的,那问题是不是一下就找到了呢。给你个例子运行一下就知道了。public class Test {

public static void main(String[] args) {

爹 执行者 = new 小儿子();

Test t1 = new Test();

t1.干大活(执行者);

t1.干小活(执行者);

}

public static void 干大活(爹 执行者) {

//没强转,运行不报错,但活没干了

执行者.干();

}

public static void 干小活(爹 执行者) {

//强转,类型不对就报错,保证活要不被干了,要不就提示说这人不是干活的料

((大儿子)执行者).干();

}

}

class 爹 {

public void 干() {

System.out.println("爹有祖传的方式干活,按这种方式能就能把活干完了...");

}

}

class 大儿子 extends 爹 {

public void 干() {

System.out.println("大儿子有自己的干活方式,跟爹的方式不一样,但是活也干完了...");

}

}

class 小儿子 extends 爹 {

public void 干() {

System.out.println("小儿子挺操蛋的,此干非彼干,正经活没干...");

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值