Search
▪️

Type Design

Abstract Class의 필요성... 비슷한 성질을 띈 클래스들에 대해서 인자로 받을 때, 모든 타입을 기술 하는 것이 어렵다... 비슷한 성질을 가진 클래스라고 기술한다고 해서 상속과 같은 것은 아니다... (상속의 경우 비슷한 성질에 대해서 부모 클래스를 통해 해당 성질들을 공유했지만, 추상 클래스는 해당 타입을 원초적인 하나의 타입으로 베이스를 깔아 두는 것이라고 보면 된다.)
abstract class로 명시한 후 선언하며, 공통적으로 쓰이는 메소드에 대해서 프로토 타입을 명시한다.
상속에서 정의된 메소드들은 써도 되고, 안 써도 됐었다. 또한 상속에서 정의한 메소드들을 쓰더라도 다형성으로 재정의가 가능했었다. 하지만 추상 클래스에서는 추상 클래스에 정의된 메소드들을 구현해줘야만 추상 클래스 속성을 인정 받을 수 있다.
abstract class를 사용할 때는 implements로 받는다. 또한 공통 성질의 클래스라면 하나의 추상 클래스로 묶는 것이 좋다.
여러 개의 abstract class를 implement할 수 있는가? → yes
인자 받을 때 말고 이렇게 abstract class로 묶어 두면 좋은 점이 무엇인가? → 타입 별로 복잡했던 로직을 일관된 타입으로 관리할 수 있게 되면서 코드가 깔끔해진다.