๐ŸŸจ JavaScript/๊ฐœ๋…

[mdn, ๋“œ๋ฆผ์ฝ”๋”ฉ ์™ธ] ๊ฐ์ฒด์ง€ํ–ฅ (4) : ํด๋ž˜์Šค์˜ ์ƒ์† (sub classing)

Zoeeey 2022. 5. 25. 13:57

ํด๋ž˜์Šค์˜ ์ƒ์† (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