Abstract class — partial implementation. Interface — contract only.
Abstract class:
Interface:
1// Abstract class2public abstract class Shape3{4 public string Color { get; set; }5 public abstract double Area();6}78// Interface9public interface IShape10{11 double Area();12 string Color { get; set; }13}
Key: Abstract for shared code, interface for contracts.