hocam arada çok fark var.

ilk olarak interfacelere kod yazamazsın, sadece metod tanımı, property tanımı, indexer ve event tanımlayabilirsin ama içine kod yazamazsın. class larda ise bunu yapabilrsin.

örnek vermek gerekirse

public interface IDeneme
{ 
            string Yazdir();
            int Toplam {get; set; }            
            string Isim{get; set; }            

}
javada getter ve setterler farklı olabilir tam hatırlamıyorum. şimdi Ideneme interfaceinde gördüğün gibi sadece metodun ismi yazılı, gövdesi yazılı değil ve de değişken olarak field değil property yazdık. ama class daha farklı

public class Deneme
{ 
            string Yazdir()
            {
               Println(".....");
            }
            int Toplam {get; set; }            
            string Isim{get; set; }            

            int Yas;

}
ikinci önemli fark ise classlarda çoklu kalıtım yok. (javada da böyle olması gerekiyor diye hatırlıyorum)

mesela

class A{}
class B{}

class C : A,B {} yapamam.... (javada implements kullanılıyor)

ancak interface çoklu kalıtımı destekler.. örnek

public interface A {}
public interface B {}
public class C: A,B {}

gördüğün gibi C class ımız A ve B den miras aldı. Bu da demektir zorunlu olarak A ve B de bulunan tüm metodları,propertyleri ... C classında zorunlu olarak barındıracaktır..

bunla ilgili internette çok örnek bulabilirsin..