[RESOLVIDO] Curiosidade

8 respostas
gpd38

Como eu uso em uma classe o SUPER?

Não entendi muito para que serve e quando usar?

8 Respostas

P
Super Classes
Um dos aspectos mais importantes da OOP é a capacidade de usar campos e métodos de uma classe previamente construída. Por meio da extensão de classes simples podemos construir classes maiores, acrescentando àquelas mais campos e métodos, obtendo com isto mais funcionalidades. Neste processo,  uma grande economia no esforço de codificação. Sem esse recurso, freqüentemente seria necessário recodificar grande parte dos programas para acrescentar-lhes funcionalidade ou fazer modificações significativas.

Ao derivar uma classe, estamos primeiramente fazendo uma cópia da classe parente. É exatamente isto que obtemos se deixarmos vazio o corpo da subclasse. Tal classe se comportaria exatamente como sua superclasse. Entretanto, podemos acrescentar novos campos e métodos à subclasse, além de sobrepor métodos existentes na superclasse, declarando-os exatamente como na superclasse, exceto por dar um corpo diferente.

Fonte: http://www.dm.ufscar.br/~waldeck/curso/java/part27.html

kallunga

Vc pode usar o super() para acionar o constructor da classe base ou acionar um método que foi sobrescrito.

Será mais visto qdo vc fizer um override(sobrescrita)

blz

betoecomp

Naum sei se é isso, mas acho que quando vc usa o super é como se estivesse instanciando em objeto da classe superior..

Exemplo de uso do super:

class Pessoa {
	String nome;
	
	Pessoa(String nome) {
		this.nome = nome;
	}
}

class Estudante extends Pessoa {
	
	Estudante(String nome) {
		super(nome);
	}
}
gpd38

Isso que vc disse betoecomp, seria sempre em uma mesma classe?
tipo

class A
{
ConstrutorA()
{

}
Metodo A()
{

}
}
class B
{
ConstrutorB()
{

}
Metodo B()
{

}
}

Como usar o SUPER ou SUB nesta classe do main?

class Principal
{
public static void main(String args[])
{

}
//Metodos. . . . . . . 
}
class C
{
ConstrutorC()
{

}
Metodo C()
{

}
}

isso tupo por junto?

betoecomp

Oi gpd38,

naum entendi direito o que vc quiz dizer com a pergunta?

seria melhor se vc colocasse uma breve descrição do que vc tah tentando implementar…
Daí eu poderia te dizer qual seria a forma correta de usar o super e como usar!!

oK, vlw

gpd38

MESMO COGIGO DO MEU ULTIMO COMENTARIO

Eu vou criar uma classe somente com o nome de classA.java, porem tenho a classe B,C e a Principal junto.
Vou mexer com o main e tenho que acessar as classes A,B,C.
Como uso o SUPER no main?

class A{
ConstrutorA(){}
Metodo A(){}
}

class B{
ConstrutorB(){}
Metodo B(){}
}

//Como usar o SUPER ou SUB nesta classe do main?

class Principal{
public static void main(String args[]){}

A tipoa = new A();
B tipob = new B();
C tipoc = new C();

//USAR O SUPER E O SUB ! ! !

}

class C{
ConstrutorC(){}
Metodo C(){}
}
betoecomp

[b] Acho que entendi o que vc quis dizer…

O problema eh que o super() é utilizado quando vc faz uma extensão de classe…

E pelo que vejo naum eh isso que vc quer fazer aí…

Acredito que no método main naum eh possivel o uso do super()

[/b]

julinho

gpd38,

Dê uma lida neste material:

http://www.dca.fee.unicamp.br/cursos/PooJava/heranca/super.html

T+
:slight_smile:

Criado 16 de abril de 2008
Ultima resposta 16 de abr. de 2008
Respostas 8
Participantes 5