Programming/๊ธฐ์ดˆ

[ํ”„๋กœ๊ทธ๋ž˜๋ฐ/OOP] ์˜ค๋ฒ„๋กœ๋”ฉ, ์˜ค๋ฒ„๋ผ์ด๋”ฉ์ด๋ž€?

MOONCO 2022. 5. 25. 16:12

๐Ÿ‘‰ ์˜ค๋ฒ„๋กœ๋”ฉ

๊ฐ์ฒด์˜ ๋ฉ”์†Œ๋“œ๋ฅผ ์ค‘๋ณต์ •์˜ํ•˜๋Š” ๊ฒƒ ( ์—ฌ๋Ÿฌ๊ฐœ ๋งŒ๋“ค๊ธฐ )

( ์ด๋ฆ„์€ ๊ฐ™์ง€๋งŒ, ์ธ์ž๋Š” ๋‹ค๋ฅธ ๋ฉ”์†Œ๋“œ ๋งŒ๋“ฌ )
// ์ด๋ฆ„์€ ๊ฐ™์ง€๋งŒ, ์ธ์ž์˜ ์œ ํ˜•๊ณผ ๊ฐœ์ˆ˜๊ฐ€ ๋‹ค๋ฅธ ๋ฉ”์„œ๋“œ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

class Post {
  def test(one, two) {
    ...
  }
  
  def test(A, B, C) {
    ...
  }
}

 

์˜ค๋ฒ„๋กœ๋”ฉ์˜ ์žฅ์ 

๋งค๊ฐœ ๋ณ€์ˆ˜์˜ ์ƒ๊น€์ƒˆ์— ๋”ฐ๋ผ์„œ, ๋‹ค๋ฅธ ๋ฉ”์„œ๋“œ๊ฐ€ ํ˜ธ์ถœ๋˜๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.  

( ์œ ๋™์ ์ธ ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ )

- ๊ทธ๋ƒฅ ๋‹ค๋ฅธ์ด๋ฆ„์˜ ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋‚ซ์ง€ ์•Š๋‚˜?

 

๐Ÿ‘‰ ์˜ค๋ฒ„๋ผ์ด๋”ฉ

๊ฐ์ฒด์˜ ๋ฉ”์†Œ๋“œ๋ฅผ ์žฌ์ •์˜ํ•˜๋Š” ๊ฒƒ ( ์ƒˆ๋กœ ๋ฎ์–ด์“ฐ๊ธฐ )

( ๋ถ€๋ชจ๊ฐ์ฒด์˜ ๋ฉ”์†Œ๋“œ๋ฅผ ๋ฌด์‹œํ•˜๊ณ , ์ƒˆ๋กœ์šด ๋ฉ”์†Œ๋“œ ๋งŒ๋“ค๊ธฐ )
// Post ๊ฐ์ฒด
class Post {
  def test() {
    ...
  }
}

// Post ๊ฐ์ฒด์˜ ์ž์‹์ธ, Comment ๊ฐ์ฒด
class Comment extend Post {
  // Post ๊ฐ์ฒด์˜ test()๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ , ์ž์‹ ๋งŒ์˜ test()๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
  // ์ด๋ฆ„๊ณผ ๋ฆฌํ„ดํ˜•์‹๊ณผ, ์ธ์žํ˜•์‹, ์ธ์ž๊ฐœ์ˆ˜๊ฐ€ ๊ฐ™์•„์•ผ ํ•œ๋‹ค.
  def test() {
    ...
  }
}
๋ฐ˜์‘ํ˜•