ํด๋์ค์ ์์ (sub classing)
class Goodcoder {
constructor(age, lang, address) {
this.age = age;
this.lang = lang;
this.address = address;
}
coding() {
console.log(`๋ด๊ฐ ๊ณต๋ถ์ค์ธ ์ธ์ด๋ ${this.lang}์
๋๋ค.`)
}
}
์ด ์๋์ ์๋ก์ด ํด๋์ค๋ฅผ ๋ง๋ค๊ณ ์ถ์๋ฐ, class Goodcoder์ ๊ฐ์ ์์์ํค๊ณ ์ถ๋ค๋ฉด extends๋ฅผ ๋ฃ์ด ๊ฐ๋จํ๊ฒ ์ฒ๋ฆฌํ ์ ์๋ค.
class Employee extends Goodcoder {}
์ด๋ ๊ฒ ์ ํด๋์ค๋ฅผ ๋ง๋ค์ด extends๋ก ์์์ ํ๋ฉด, ์๋ก์ด ํด๋์ค์ ์ด์ ํด๋์ค ๊ฐ๋ค์ด ์์๋๋ค.
const noran = new Employee(20,'Java','Seoul');
noran.coding(); //๋ด๊ฐ ๊ณต๋ถ์ค์ธ ์ธ์ด๋ Java์
๋๋ค.
* ์์ ์์์ ์ฌ๋ฌ๋ช ์ ๊ฐ์ง ์ ์๋ค.
์์๋ ์์์์์ ์์ ๋ ๊ฐ๋ฅํ๋ค. (์ด์ ๋ถ๋ชจ์ ์์ฑ๋ ๊ฐ์ด ๋ถ๋ฌ์ค๊ณ ์ถ๋ค๋ฉด super๋ฅผ ๋ถ์ด๋ฉด ๋๋ค.)
class Goodcoder {
constructor(age, lang, address) {
this.age = age;
this.lang = lang;
this.address = address;
}
coding() {
console.log(`๋ด๊ฐ ๊ณต๋ถ์ค์ธ ์ธ์ด๋ ${this.lang}์
๋๋ค.`)
}
}
class Employee extends Goodcoder {
coding() {
super.coding();
console.log(`๋๋ ${this.lang}๋ฅผ ๋ง์คํฐํ์ต๋๋ค.`)
}
}
const noran = new Employee(20,'Java','Seoul');
noran.coding();
//๋ด๊ฐ ๊ณต๋ถ์ค์ธ ์ธ์ด๋ Java์
๋๋ค.
//๋๋ Java๋ฅผ ๋ง์คํฐํ์ต๋๋ค.
์ถ์ฒ : ๋๋ฆผ์ฝ๋ฉ https://www.youtube.com/@dream-coding / MDN https://developer.mozilla.org/ko