Opa Leonardo, tudo bem com você?
Então, vamos para cada parte:
Foi utilizado "extends" menos para a classe Transferencia. Pq?
Então, a classe transferência é o que chamamos de Modelo
, ou seja, é apenas um objeto com atributos e métodos, ela não é um widget
ou retorna alguma coisa para o flutter
Ela é somente uma classe que dado os nosso atributos iremos criar um objeto do tipo transferência, que poderia por exemplo, ter algumas funções, ou coisa do gênero, isto é, estamos dando sentido lógico para os dados que recebemos através dos inputs
que é o extends? Um método? Um atributo?
Extends é utilizado na maioria das linguagens de programação para indicar uma herança, ou seja quando dizemos por exemplo que:
class ListaTransferencia extends StatelessWidget
Estamos dizendo que a classe que criamos deve herdar todos comportamentos e métodos que a classe StatelessWidget
contém!
Além disso StatelessWidget
, assim como o StatefullWidget
, são classes abstratas, então além de nos prover atributos e métodos, ela também traz algumas obrigações, como por exemplo a reimplementação de métodos, por isso que sempre temos que fazer o:
@override
Widget build(BuildContext context){}
Pois todo mundo que herda de Stateless tem a obrigação de sobreescrever (override) o método build :)
Quando usar o extends e quando nao usar?
Então, é basicamente o que citei a cima, quando precisamos herdar métodos e atributos de uma outra classe precisamos utilizar o extends
, quando temos uma classe que representa apenas um objeto, não precisamos :)
Poderíamos ter por exemplo uma classe por exemplo DOC
, ao invés de ter que declarar novamente os atributos de numeroConta
e valor
poderíamos herdar eles de Transferencia
class DOC extends Transferencia
Acredito que todas as linguagens que você escolher aqui da Alura, quando chegar no tópico de orientações a objetos terá vários exemplos de situação em que podemos utilizar herança :)
Mas dentro do Flutter a gente pode perceber que sempre que queremos criar algum Widget iremos precisar herdar esses comportamentos, principalmente de Stateless
ou Statefull
:)
Compreendeu?
Abraços e Bons Estudos!