Interface — contract. Abstract class — partial implementation.
Interface:
Abstract class:
1// Interface2public interface IAnimal3{4 void Speak();5}67// Abstract class8public abstract class Animal9{10 public string Name { get; set; }11 public abstract void Speak();12}
Key: Interface for contracts, abstract for shared code.