Classe base – .net

Definição - O que significa Classe Base - .NET?

Uma classe base, no contexto de C #, é uma classe usada para criar ou derivar outras classes. As classes derivadas de uma classe base são chamadas de classes filhas, subclasses ou classes derivadas. Uma classe base não herda de nenhuma outra classe e é considerada pai de uma classe derivada.

A classe base constitui o meio pelo qual a herança é realizada por meio da derivação. Uma classe derivada de uma classe base herda os dados e o comportamento. Por exemplo, veículo pode ser uma classe base da qual as classes derivadas carro e ônibus podem ser derivadas. Tanto o carro quanto o ônibus são veículos, e cada um deles representa suas próprias especializações de classe base.

Como em Java, mas ao contrário de C ++, C # não oferece suporte a várias heranças de classes. C # difere de Java por marcar explicitamente um modificador virtual para todos os membros virtuais.

Uma classe base também é conhecida como classe pai ou superclasse.

Definirtec explica Classe Base - .NET

A classe base ajuda a criar uma classe especializada que pode reutilizar o código que é obtido implicitamente da classe base (exceto construtores e destruidores) e estender a funcionalidade da classe base adicionando ou substituindo membros relevantes à classe derivada na classe derivada. Em C #, os eventos são declarados na classe base que podem ser gerados a partir de classes derivadas. As classes genéricas usadas para encapsular operações que não são específicas a um determinado tipo de dados servem como classes base, fornecendo comportamento genérico para obter flexibilidade e capacidade de reutilização de código.

A chave das propriedades da classe base em C #:

  • Os membros da classe base (construtor, um método de instância ou acessador de propriedade de instância) são acessados ​​na classe derivada usando a palavra-chave "base".
  • As classes base são instanciadas automaticamente antes das classes derivadas.
  • A classe derivada pode se comunicar com a classe base durante a instanciação chamando o construtor da classe base com uma lista de parâmetros correspondente.
  • Os membros da classe base podem ser acessados ​​a partir da classe derivada por meio de um elenco explícito.
  • Como a própria classe base pode ser uma classe derivada, uma classe pode ter muitas classes base.
  • Os membros de uma classe derivada podem acessar os membros públicos, protegidos, internos e internos protegidos de uma classe base.
  • Devido à natureza transitiva da herança, embora uma classe derivada tenha apenas uma classe base, ela herda os membros declarados no pai da classe base.
  • Ao declarar um método na classe base como virtual, a classe derivada pode substituir esse método com sua própria implementação. Tanto o método e propriedade sobrescritos quanto sobrescritos devem ter os mesmos modificadores de nível de acesso, como virtual, abstrato ou override.
  • Quando a palavra-chave "abstrato" é usada para um método, ela deve ser substituída em qualquer classe não abstrata que herde diretamente dessa classe.
  • Classes de base abstratas são criadas usando a palavra-chave "abstrata" em sua declaração e são usadas para evitar a iniciação direta usando a palavra-chave "novo". Eles só podem ser usados ​​por meio de classes derivadas que implementam métodos abstratos.
  • Uma classe base pode impedir que outras classes herdem dela, declarando todos os membros como "selados".
  • Os membros da classe base podem ser ocultados em uma classe derivada usando a palavra-chave "novo" para indicar que o membro não se destina a ser uma substituição do membro base. Se "novo" não for usado, o compilador gera um aviso.

Embora a classe base e a interface possam ser usadas alternadamente, as classes são mais flexíveis do que as interfaces de uma perspectiva de controle de versão. A classe base é preferida na maioria dos casos, exceto nos seguintes cenários onde:

  • Várias classes não relacionadas formam a base para a classe derivada
  • As classes já estabeleceram classes básicas
  • A agregação não é adequada ou prática

Esta definição foi escrita no contexto de C #