Problema para entendimento de polimorfismo

E ae galera, eu again :cool:

Vou dividir esse topic em 2 partes para evitar a criação de topics desnecessários.

Parte 1

To estranhando esse exemplo aki :

public class Point {
	protected int x, y;

	public Point()
	{
		setPoint ( 0, 0 );
	}

	public Point ( int xCoordinate, int yCoordinate )
	{
		setPoint ( xCoordinate, yCoordinate );
	}

	public void setPoint ( int xCoordinate, int y Coordinate )
	{
 		x = xCoordinate;
		y = yCoordinate;
	}

	public String toString()
	{
		return "[" + x + ", " + y + "]";
	}

}

//Tirei alguns methods q não farão falta para a esplanação da dúvida
public class Circle extends Point {
	protected double radius;

	public Circle()
	{
		setRadius( 0 );
	}

	public Circle ( double circleRadius, int xCoordinate,
		int yCoordinate )
	{
	
		super ( xCoordinate, yCoordinate );

		setRadius ( circleRadius );
	}

	public String toString()
	{
		return "Center = " + "[" + x + ", " + y + "]" +
			"; Radius = " + radius;
	}

}

E finalmente

public class Test {

	public static void main ( String args[] )
	{
		Point point1, point2;
		Circle circle1, circle2;

		point1 = new Point ( 30, 50 );
		circle1 = new Circle ( 2.7, 40, 50 );

		//um monte de coisa aki
		//o mais importante na linha abaixo

		point2 = circle1;

		//Mais alguns trechos desnecessários
	}
}

Gostaria de saber pq não dá um erro na hora q eu atribuo circle1 a point2 jah q point2 eh uma instância de point e OS ARGUMENTOS do circle são diferentes dos argumentos de point.

Eu achei isso mto estranho, gostaria que me explicassem isso da forma mais didática possível pq ta mto estranho isso pra mim,hehe.

Parte 2

Alguém poderia me explicar como o this está funcionando no trecho de código abaixo:

public class Point2 {

	public Point2()
	{
		x = 0;
		y = 0;
		System.out.println ( "blabla: " + this ); //???
	}

	public Point2 ( int xCoordinate, int yCoordinate )
	{
		x = 0;
		y = 0;
		System.out.println ( "blabla: " + this ); //???
	}

	//Não entendi A q esses "this" estão se referindo.

	public String toString()
	{
		return "[" + x + ", " + y + "]" ;
	}

}

Não vou postar mais uma classe soh pra criar um objeto Point2 mas subentendam q isso aconteceu.

Não entendi A q o this faz referência, a própria classe?
To 1/2 confuso nessa parte, hehe.

Termina aqui esse longo topic e jah agradeço de antemão qm teve saco pra ler ateh aqui! hehehe :lol:

Valeu

Fala brother.
Dá uma lida:

http://www.portaljava.com.br/home/modules.php?name=Content&pa=showpage&pid=85

Abraço.
Charles

[quote=“Chale”]Fala brother.
Dá uma lida:

http://www.portaljava.com.br/home/modules.php?name=Content&pa=showpage&pid=85

Abraço.
Charles[/quote]

Opa, bom texto, bem didático ( apesar d eu odiar esse tipo de explicação “4 children” )

Mas, abusando da boa vontade, e o problema 2? :oops:

O this faz referência a própria classe sim, e quando vc concatena um objeto com um String, o método toString() do objeto é chamado automaticamente. Então é a mesma coisa que fazer this.toString()

Valeu!

[quote=“Romulinho”]O this faz referência a própria classe sim, e quando vc concatena um objeto com um String, o método toString() do objeto é chamado automaticamente. Então é a mesma coisa que fazer this.toString()

Valeu![/quote]

AHHHHHHHH tÁAAAAAAAAAHHHHHHH

hehe, agora entendi ( finalmente )

Valeu =D