Olá,
Gostária de saber a diferença dos dois termos extends e implements, assim como Comparable e Comparator, se possível também como funcionam as chaves <> que acompanham esses termos.
Olá,
Gostária de saber a diferença dos dois termos extends e implements, assim como Comparable e Comparator, se possível também como funcionam as chaves <> que acompanham esses termos.
Oi Gabriel,
Só para registrar.
Gostária de saber a diferença...
A(s) sua(s) pergunta(s) foi(ram) muito boa(s)!
Apesar da demora, em breve teremos a(s) resposta(s).
Suponho que o pessoal que pode responder esteja estudando para prova.
Pois é, tem essas coisas de sujeito versus adjetivo: comparador versus comparável, iterador versus iterável,...
Alguém sabe mais algum?
Quem responder não precisa escrever sobre tudo de uma vez.
Pode, digamos, primeiro escrever apenas sobre objetos comparáveis, depois ...
Olá!
extends permite que uma subclasse contenha todos os atributos (variáveis) e propriedades (funções) de outra classe.
implements permite que uma subclasse contenha todos os atributos (variáveis) e propriedades (funções) de uma interface.
Em geral, uma class é usada para descrever objetos específicos (Queue, Stack) ou agrupar funções importantes parecidas (StdIn, StdOut, StdDraw).
Já uma interface descreve uma qualidade genérica. Por exemplo, Integer e Double têm a característica "ordenável" como parte de sua definição. Ambos são números, mas números complexo não são ordenáveis.
Como uma característica, qualidade ou relação pode ser expressa com uma função, ao escrever a assinatura:
private class RelativeNode implements Comparable<RelativeNode>
Você garante que quaisquer dois objetos de sua classe podem ser relacionados em ordem total por uma função de assinatura
public int compareTo(RelativeNode that)
Mas, mesmo que uma classe de objetos não tenha a propriedade de ser comparável, pode ser interessante poder definir um critério qualquer de de ordenação. Por exemplo, ordenar os números complexos pela distância até a origem. Ou, como na seguinte forma de fazer a função delete do EP05:
Beleza, acho que entendi como funciona, obrigado!