在以下代码中:
A tat = new P();
P bat = (P) tat;是类型转换tat:P bat = (P) tat;
就像说:P tat = new P();
你还能从理论上说:P bat = ( P tat = new P(); )
发布于 2014-10-01 01:41:54
答案是肯定的,但P bat = ( P tat = new P(); )不是有效的Java代码,也不会编译。
您必须使用两个语句来定义它们:
P bat, tat;
bat = tat = new P();发布于 2014-10-01 01:45:21
在您的示例中,您需要记住,虽然tat实际上是P的一个实例,但它具有由A定义的接口(假设P扩展或实现了A,否则就无法工作)。
在此之后,bat将是对tat引用的相同对象的引用,但是它将通过P定义的接口访问。
https://stackoverflow.com/questions/26132829
复制相似问题