using static System.Console;
public class HelloWorld {
public static void Main() {
Veiculo veiculoT = new Veiculo();
WriteLine("---------------");
Veiculo carro = new Carro();
WriteLine("---------------");
Carro carro2 = new Carro();
interface IFuncionamento {
static class Funcionamento {
public static void liga(this IFuncionamento func) => WriteLine("Ligou!");
public static void buzina() => WriteLine("Buzinou!");
public static void teste(this IFuncionamento veiculo) {
static class Financeiro {
public static void compra(this Veiculo veiculo) {
WriteLine("Comprou N: " + veiculo.id);
class Veiculo : IFuncionamento {
public void diagnostico() {
Funcionamento.liga(this);
public virtual void liga() => Funcionamento.liga(this);
public override void liga() => WriteLine("Vrom!");
public void buzina() => WriteLine("bi bi!");