추상클래스?
추상함수를 가지는 클래스라고 생각하면 된다.
반복적인 기능이 있고 특정 기능만 자식클래스에서 달라진다면,
추상함수
를 가지는 추상클래스
로 만들면 좋다.특징
abstract class
키워드로 추상 클래스 정의
- 추상클래스로는 오브젝트 생성 불가. (구현되지 않은 추상적인 요소가 있으므로 당연함)

- 추상클래스를 상속할 경우 생성자 함수에서
super()
는 호출하지 않아도 되며, 추상 클래스의 추상 메소드만 구현하면 된다.
- 추상클래스를 상속받은 자식클래스는 반드시 추상메소드를 구현해야 한다.
자식 클래스에서 부모 추상 클래스의 메소드에 접근할 수 있어야하므로추상함수
는protected abstract
로 작성한다.그냥 해도 됨.
코드 예시
추상클래스
동물
에는밥먹기()
함수와울기()
함수가 있다.
동물
에는밥먹기()
함수는 정의되어 있고,울기()
함수는추상함수
다.
고양이
클래스와강아지
클래스는 추상클래스인 동물 클래스를 상속받는다.- 추상클래스에 선언된 추상함수를 반드시 구현해야 한다. (구현 강제)
- 밥먹기() 함수는 부모 클래스에서 정의되어 있으므로 자식클래스에서 별도로 정의하지 않아도 쓸 수 있다.
abstract class 동물 { abstract 울기(): void; 밥먹기(): void { console.log("밥을 먹는다..."); } } class 강아지 extends 동물 { 울기() { console.log("멍멍"); } } class 고양이 extends 동물 { 울기() { console.log("야옹"); } } const myDog = new 강아지(); const myCat = new 고양이(); myDog.밥먹기(); myDog.울기(); myCat.밥먹기(); myCat.울기();
