abstract class Piece { constuctor() }
abstract 키워드는 해당 클래스를 바로 인스턴스화 할 수 없음을 의미하고 필요한 메소드를 추상 클래스에 자유롭게 추가할 수 있다 상속받은 클래스를 통해서만 인스턴스화할 수 있도록 허용
추상 클래스는 추상 메소드도 반드시 구현해야 한다