Summary
Keywords
Full Transcript
Playlist: Curso Grátis de FLUTTER e DART Completo https://www.youtube.com/playlist?list=PL5EmR7zuTn_aX0pG4oWTyKKQT25Hkq2XG Estendendo uma classe Use extends para criar uma subclasse e super para se referir à superclasse: classe de televisão { void turnOn () { _illuminateDisplay (); _activateIrSensor (); } // ··· } classe SmartTelevision estende a televisão { void turnOn () { super.turnOn (); _bootNetworkInterface (); _initializeMemory (); _upgradeApps (); } // ··· } Membros substitutos As subclasses podem substituir métodos de instância, getters e setters. Você pode usar a anotação @override para indicar que está substituindo intencionalmente um membro: classe SmartTelevision estende a televisão { @sobrepor void turnOn () {...} // ··· } Para restringir o tipo de um parâmetro de método ou variável de instância no código que é seguro para o tipo, você pode usar a palavra-chave covariant. Operadores substituíveis Você pode substituir os operadores mostrados na tabela a seguir. Por exemplo, se você definir uma classe Vector, poderá definir um método + para adicionar dois vetores. Nota: Você deve ter notado que! = Não é um operador substituível. A expressão e1! = E2 é apenas açúcar sintático para! (E1 == e2). Veja um exemplo de uma classe que substitui os operadores + e -: classe Vector { int final x, y; Vector (this.x, this.y); Operador vetorial + (Vector v) =MAIOR Vector (x + v.x, y + v.y); Operador vetorial - (Vector v) =MENOR Vector (x - v.x, y - v.y); // Operador == e hashCode não mostrado. Para detalhes, veja nota abaixo. // ··· } void main () { v final = Vector (2, 3); final w = Vector (2, 2); assert (v + w == Vector (4, 5)); assert (v - w == Vector (0, 1)); } Se você substituir ==, também deverá substituir o getter de hashCode do objeto. Para obter um exemplo de substituição de == e hashCode, consulte Implementando as chaves do mapa.
