Nesta aula iremos aprender como utilizar classes abstratas, qual a diferença entre uma classe normal, uma classe abstrata e uma interface.
Classes Abstratas são classes incompletas, na qual estarão definidos atributos comuns e métodos para as classes que irão herdá-las. Abaixo seguem as características de Classes Abstratas:
Vamos criar uma classe abstrasta chamada Animal e criar o método abstrato Latir()
namespace console_app
{
public abstract class Animal
{
public string coleira;
public string pelo;
public string olhos;
public abstract void Latir()
{
}
public string Correr()
{
return "O animal está correndo";
}
}
}
Vamos criar a classe Cachorro que herda da classe Animal. Note que automaticamente o sistema mostra uma mensagem de erro que devemos implementar o método abstrato Latir(). Então será implementado o método Latir() com a palavra override.
public class Cachorro : Animal
{
public string coleira;
public string pelo;
public string olhos;
//implementação do método abstrato Latir()
public override void Latir()
{
Console.WriteLine("Au eu sou um cachorrinho");
}
public string Correr()
{
return "O animal está correndo";
}
}
No programa principal (main), ao criar uma nova instancia da classe Animal, o sistema mostra um erro onde não podemos criar instancia de classe abstrata ou Interface.
namespace console_app
{
class Program
{
static void Main(string[] args)
{
var a = new Animal(); //erro ao tentar instanciar uma classe abstrata.
}
}
}
No programa principal (main), ao criar uma nova instancia da classe Cachorro (que implementou a classe Animal), teremos disponíveis metodos e atributos.
namespace console_app
{
class Program
{
static void Main(string[] args)
{
var c = new Cachorro();
c.Latir();
}
}
}
Uma observação a ser feita é que não podemos criar métodos abstratos em classes que não são abstratas.
}Nesta aula iremos aprender como utilizar classes abstratas, qual a diferença entre uma classe normal, uma classe abstrata e uma interface.
Classes Abstratas são classes incompletas, na qual estarão definidos atributos comuns e métodos para as classes que irão herdá-las. Abaixo seguem as características de Classes Abstratas:
Vamos criar uma classe abstrasta chamada Animal e criar o método abstrato Latir()
namespace console_app
{
public abstract class Animal
{
public string coleira;
public string pelo;
public string olhos;
public abstract void Latir()
{
}
public string Correr()
{
return "O animal está correndo";
}
}
}
Vamos criar a classe Cachorro que herda da classe Animal. Note que automaticamente o sistema mostra uma mensagem de erro que devemos implementar o método abstrato Latir(). Então será implementado o método Latir() com a palavra override.
public class Cachorro : Animal
{
public string coleira;
public string pelo;
public string olhos;
//implementação do método abstrato Latir()
public override void Latir()
{
Console.WriteLine("Au eu sou um cachorrinho");
}
public string Correr()
{
return "O animal está correndo";
}
}
No programa principal (main), ao criar uma nova instancia da classe Animal, o sistema mostra um erro onde não podemos criar instancia de classe abstrata ou Interface.
namespace console_app
{
class Program
{
static void Main(string[] args)
{
var a = new Animal(); //erro ao tentar instanciar uma classe abstrata.
}
}
}
No programa principal (main), ao criar uma nova instancia da classe Cachorro (que implementou a classe Animal), teremos disponíveis metodos e atributos.
namespace console_app
{
class Program
{
static void Main(string[] args)
{
var c = new Cachorro();
c.Latir();
}
}
}
Uma observação a ser feita é que não podemos criar métodos abstratos em classes que não são abstratas.
}