⊗jsOpIhCOM 32 of 60 menu

JavaScript OOP에서 오버라이딩된 메서드 호출하기

오버라이딩 시, 자식 클래스는 오버라이딩된 부모 클래스의 메서드에 대한 접근권을 잃게 됩니다. 그러나 여전히 해당 메서드에 접근하는 것이 가능합니다. 이는 부모 클래스를 가리키는 키워드 super를 사용하여 수행할 수 있습니다.

부모 클래스 메서드에 접근이 필요할 수 있는 예시를 살펴보겠습니다. 다음과 같은 부모 클래스가 있다고 가정해 봅시다:

class User { setName(name) { this.name = name; } getName() { return this.name; } }

자식 클래스에서 부모의 메서드를 오버라이드했다고 가정해 보겠습니다:

class Student extends User { setName(name) { if (name.length > 0) { this.name = name; } else { throw new Error('student name error'); } } }

오버라이딩된 메서드에서 조건이 충족되면 실제로 부모 메서드의 코드가 실행된다는 것을 알 수 있습니다. 이는 불필요한 코드 중복을 초래합니다.

부모의 메서드를 호출함으로써 이 중복을 제거할 수 있습니다. 한번 해보겠습니다:

class Student extends User { setName(name) { if (name.length > 0) { super.setName(name); // 부모 메서드 } else { throw new Error('student name error'); } } }

다음 코드가 주어졌습니다:

class User { setAge(age) { if (age >= 0) { this.age = age; } else { throw new Error('need age more 0'); } } } class Employee { setAge(age) { if (age <= 120) { if (age >= 0) { this.age = age; } else { throw new Error('need age more 0'); } } else { throw new Error('need age less 120'); } } }

Employee 클래스에서 나이 설정자(setter)를 부모의 원본 메서드를 사용하여 단순화하세요.

한국어
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақКыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
우리는 웹사이트 운영, 분석 및 개인화를 위해 쿠키를 사용합니다. 데이터 처리는 개인정보 처리방침에 따라 이루어집니다.
모두 수락 설정 거부