클래스가 다른 클래스를 상속할 때 확장을 사용합니다.
클래스가 인터페이스를 상속할 때 구현을 사용합니다.
인터페이스가 다른 인터페이스를 상속할 때 확장을 사용합니다.
클래스는 다른 클래스를 상속하고 동시에 인터페이스를 구현합니다. 일반적으로 확장이 먼저 사용되고 구현이 그 뒤를 따릅니다.