对象类型转换

时间:2014-10-01 01:39:00

标签: java object typecasting-operator

在以下代码中:

A tat = new P();

P bat = (P) tat;

是类型转换tatP bat = (P) tat;

与说:P tat = new P();

相同

你能否在理论上说:P bat = ( P tat = new P(); )

2 个答案:

答案 0 :(得分:1)

答案是肯定的,但P bat = ( P tat = new P(); )不是有效的Java代码,不会编译。

您必须使用两个语句来定义它们:

P bat, tat;
bat = tat = new P();

答案 1 :(得分:0)

在您的示例中,您需要记住,虽然tat实际上是P的实例,但它具有A定义的接口(假设P扩展或实现A,否则这不会起作用。

在此之后,bat将引用tat引用的同一对象,但是可以通过P定义的界面访问它。