Ortak özellikleri olan class'lar için taban class oluşturur. Abstract class'lar, diğer class'lara base class olarak tanımlanır. Abstract class'lardan nesne türetilemez ve Instance alınamaz. Tanımlanan metotlar override edilir. Kendisine base alan Metotlar virtual olarak tanımlanır. Private olarak tanımlanamazlar, sadece abstract class'lar içerisinde tanımlanabilir. Abstract class'lar virtual özelliktedir ve static olarak tanımlanamaz.
BaseClass, ProductRepository class'ına base olarak tanımlandığında, BaseClass içerisindeki metotlar ProductRepository class'ında oluşturulmasını ister. Böylelikle taban class olarak tanımlanan BaseClass diğer ortak class'larda da kullanılarak kullanılabilir.
ProductRepository içerisinde oluşan metotlar override olarak oluşturulurlar.Dene