Pequena dúvida em um exercício

Olá pessoal, primeiramente um bom natal pra todos, e um 2007 de muitas realizações!!!

Bom, estou dando uma estudada pros concuros que vêm por aí, e estou com a prova da Petrobras 2005. Estou confundindo os conceitos de duas linhas desse código aqui:

public class mcP { int a = 0; mcP () { } mcP (int arg) { a = arg; } int getA () { return a + a; } } public class mcS extends mcP { int b = 0; mcS (int arg) { b = arg; } int getA () { a = super.getA(); return a; } int getB () { return b + b; } int getBA () { a = b; return b - a; } } public class mc { public static void main (String arguments[]) { int valor; mcP x = new mcP (2); mcS y = new mcS (x.getA() - 1); valor = x.getA() + y.getA() + y.getB() + y.getBA(); x = y; valor = valor + x.getA() + y.getA() + y.getB() + y.getBA(); y = (mcS)x; valor = valor + x.getA() + y.getA() + y.getB() + y.getBA(); System.out.println(valor); } }
Minhas dúvidas estão na linha [color=“blue”]x = y;[/color] e [color=“blue”]y = (mcS)x;[/color], ambas no final do código.

É só isso, coisa simples! Agradeço desde já pela força… :lol:

Tens uma duvida nessas linhas, otimo, qual é a duvida ?
(essas linhas estão certas, embora seja uma programação horrivel)

x = y;

A variável de referência x recebe o valor da variável de referência y. Isto é possível pois mcS é um mcP.

y = (mcS)x;

Convertendo a variável de referência mcP em mcS, permitindo agora a utilização dos métodos de mcS.