Conceito: capacidade da linguagem de permitir ao desenvolvedor abstrair detalhes que não têm relevância.
Exemplo: num cadastro de computador, eu posso abstrair informações sobre o produto que são importantes para o fabricante mas não são relevantes para o lojista.
Classes
Annotations:
Conceito: classe é uma representação de um objeto.
O que o meu objeto vai ser.
Representação de algo do mundo real.
type
TComputador = class
MemoriaRam: String;
HD: String;
Monitor: String;
SO: String;
Preco: String;end;
Exemplo de uma classe e suas propriedades.
Objetos
Annotations:
Conceito: Instância de uma classe.
O que é de fato a minha classe.
procedure Botao.Click;
var
Dell, HP: TComputador;
begin
Dell := TComputador.Create;
Dell.MemoriaRam := '4GB';
HP := TComputador.Create;
HP.MemoriaRam := '8GB';
end;
Herança
Annotations:
Permite criar estruturas de classe onde definimos o que é comum a todas as classes numa estrutura mais superior possível e vamos derivando e especificando nas estruturas inferiores.
TProduto = class
Nome: String;
Modelo: String;
Preco: String;
TComputador = class(TProduto)
>> TComputador vai herdar as propriedades de TProduto, assim devemos criar apenas as propriedades que são específicas do computador.
TProduto = class
Nome: String;
TDispositivo = class(TProduto) SO: String;TComputador = class(TDispositivo) PlacaRede: String;TCelular = class(TDispositivo) Camera: String;TComputador e TCelular tem propriedades em comum, que colocamos em TDispositivo, sendo que ambos terão as propriedades de TProduto, pois TDisposito é herdado de TProduto.
>> Hierarquia de classes