0

Through some negligence I have defined an interface which does contain actual code:

 public interface IVermietbar
    {

        public Mieter VermietetAn { get; set; }
        public DateTime VermietetUm { get; set; }

        public abstract string ID { get; }

        public bool VermieteAn(Mieter vermieteAn)
        {
            if (VermietetAn != null) return false;
            VermietetAn = vermieteAn;
            VermietetUm = DateTime.Now;
            return true;
        }
    }

 [....]

    public class PKW : Kraftfahrzeug, IVermietbar {
        public PKWKategorie Kategorie { get; set; }

        public int KofferraumVolumen { get; set; }

        string IVermietbar.ID => VIN;

        public Mieter VermietetAn { get; set;}
        public DateTime VermietetUm {get; set;}

        public PKW(string name, string modell, string vin) : base(name, modell, vin)                  {}
    }

Not only did this nonsense pass compiling, it does also seem to work at first glance.

Why does this code compile?

Nimral
  • 657
  • 8
  • 25

0 Answers0