1. ๊ณ ๋ž˜์™€ ์†Œ

ํฅ๋ฏธ๋กœ์šด ๋™๋ฌผํ•™์  ์‚ฌ์‹ค์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์†Œ๋Š” ์˜ˆ๋ฅผ ๋“ค์–ด ํ•˜๋งˆ๋ณด๋‹ค ๊ณ ๋ž˜์— ํ›จ์”ฌ ๋” ๊ฐ€๊น์Šต๋‹ˆ๋‹ค. ์†Œ์™€ ๊ณ ๋ž˜๋Š” ๋น„๊ต์  ๊ฐ€๊นŒ์šด ์นœ์ฒ™์ด๋ผ๋Š” ๊ฒƒ์ด ๋ฐํ˜€์กŒ์Šต๋‹ˆ๋‹ค.

์ด๋ด. OOP ์˜ ๋˜ ๋‹ค๋ฅธ ๋งค์šฐ ๊ฐ•๋ ฅํ•œ ๋„๊ตฌ์ธ ๋‹คํ˜•์„ฑ ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•ด ๋ด…์‹œ๋‹ค . ๋„ค ๊ฐ€์ง€ ๊ธฐ๋Šฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค.


2. ์ƒ์†์€ ๋งŒ๋ณ‘ํ†ต์น˜์•ฝ์ด ์•„๋‹ˆ๋‹ค

Cow๊ฒŒ์ž„์„ ์œ„ํ•œ ํด๋ž˜์Šค๋ฅผ ์ž‘์„ฑํ–ˆ๋‹ค๊ณ  ์ƒ์ƒํ•ด ๋ณด์‹ญ์‹œ์˜ค . ๋งŽ์€ ํ•„๋“œ์™€ ๋ฉ”์„œ๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํด๋ž˜์Šค์˜ ๊ฐ์ฒด๋Š” ๊ฑท๊ธฐ, ๋จน๊ธฐ, ์ž ์ž๊ธฐ ๋“ฑ ๋‹ค์–‘ํ•œ ์ผ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์†Œ๋Š” ๋˜ํ•œ ๊ฑธ์„ ๋•Œ ์šธ๋ฆฌ๋Š” ์ข…์„ ๋‹ฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€์žฅ ์ž‘์€ ์„ธ๋ถ€ ์‚ฌํ•ญ๊นŒ์ง€ ํด๋ž˜์Šค์˜ ๋ชจ๋“  ๊ฒƒ์„ ๊ตฌํ˜„ํ–ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ ๋‹ค์Œ ๊ณ ๊ฐ์ด ์™€์„œ ๋ชจ๋“  ์ž‘์—…์ด ๋ฐ”๋‹ค์—์„œ ์ผ์–ด๋‚˜๊ณ  ์ฃผ์ธ๊ณต์ด ๊ณ ๋ž˜์ธ ์ƒˆ๋กœ์šด ๊ฒŒ์ž„ ๋ ˆ๋ฒจ์„ ์ถœ์‹œํ•˜๊ณ  ์‹ถ๋‹ค๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค.

๋‹น์‹ ์€ Whale์ˆ˜์—…์„ ์„ค๊ณ„ํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ๊ณ  ๊ทธ๊ฒƒ์ด ์ˆ˜์—…๊ณผ ์•ฝ๊ฐ„๋งŒ ๋‹ค๋ฅด๋‹ค๋Š” ๊ฒƒ์„ ๊นจ๋‹ซ์Šต๋‹ˆ๋‹ค Cow. ๋‘ ํด๋ž˜์Šค์˜ ๋…ผ๋ฆฌ๋Š” ๋งค์šฐ ์œ ์‚ฌํ•˜๋ฉฐ ์ƒ์†์„ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

์ž๋ฐ”์˜ ๋‹คํ˜•์„ฑ

์ด Cowํด๋ž˜์Šค๋Š” ๋ถ€๋ชจ ํด๋ž˜์Šค์˜ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ์— ์ด์ƒ์ ์ž…๋‹ˆ๋‹ค. ํ•„์š”ํ•œ ๋ชจ๋“  ๋ณ€์ˆ˜์™€ ๋ฉ”์„œ๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ํ•ด์•ผ ํ•  ์ผ์€ ๊ณ ๋ž˜์—๊ฒŒ ํ—ค์—„์น  ์ˆ˜ ์žˆ๋Š” ๋Šฅ๋ ฅ์„ ๋ถ€์—ฌํ•˜๋Š” ๊ฒƒ๋ฟ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ณ ๋ž˜๋Š” ๋‹ค๋ฆฌ, ๋ฟ”, ์ข…์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ตญ ์ด ๊ธฐ๋Šฅ์€ Cowํด๋ž˜์Šค ๋‚ด์—์„œ ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ๋ฌด์—‡์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์ž๋ฐ”์˜ ๋‹คํ˜•์„ฑ.  ๊ณ„์Šน

3. ๋ฉ”์„œ๋“œ ์žฌ์ •์˜

๋ฉ”์„œ๋“œ ์žฌ์ •์˜๊ฐ€ ์šฐ๋ฆฌ๋ฅผ ๊ตฌํ•ด์ค๋‹ˆ๋‹ค. ์ƒˆ ํด๋ž˜์Šค์—์„œ ์›ํ•˜๋Š” ๋Œ€๋กœ ์ˆ˜ํ–‰๋˜์ง€ ์•Š๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ์ƒ์†ํ•œ ๊ฒฝ์šฐ ํ•ด๋‹น ๋ฉ”์„œ๋“œ๋ฅผ ๋‹ค๋ฅธ ๋ฉ”์„œ๋“œ๋กœ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฉ”์„œ๋“œ ์žฌ์ •์˜

์ด๊ฒƒ์€ ์–ด๋–ป๊ฒŒ ์ด๋ฃจ์–ด ์ง‘๋‹ˆ๊นŒ? ์ž์† ํด๋ž˜์Šค์—์„œ ์žฌ์ •์˜ํ•˜๋ ค๋Š” ๋ถ€๋ชจ ํด๋ž˜์Šค์˜ ๋ฉ”์„œ๋“œ์™€ ๋™์ผํ•œ ๋ฉ”์„œ๋“œ๋ฅผ ์„ ์–ธํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์— ์ƒˆ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒŒ ๋‹ค์ž…๋‹ˆ๋‹ค. ๋งˆ์น˜ ๋ถ€๋ชจ ํด๋ž˜์Šค์˜ ์ด์ „ ๋ฉ”์„œ๋“œ๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฒƒ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ž‘๋™ ๋ฐฉ์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์•”ํ˜ธ ์„ค๋ช…
class Cow
{
   public void printColor ()
   {
      System.out.println("I'm a white whale");
   }

   public void printName()
   {
      System.out.println("I'm a cow");
   }
}

class Whale extends Cow
{
   public void printName()
   {
      System.out.println("I'm a whale");
   }
}
  • ์—ฌ๊ธฐ์—๋Š” ๋‘ ๊ฐœ์˜ ํด๋ž˜์Šค๊ฐ€ ์ •์˜๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค Cow.Whale
  • Whale๋ฌผ๋ ค๋ฐ›๋‹คCow
  • ํด๋ž˜์Šค ๊ฐ€ ๋ฉ”์„œ๋“œ๋ฅผ Whale์žฌ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.printName()
public static void main(String[] args)
{
   Cow cow = new Cow();
   cow.printName();
}
์ด ์ฝ”๋“œ๋Š” ํ™”๋ฉด์— ๋‹ค์Œ ํ…์ŠคํŠธ๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
I'm a cow
public static void main(String[] args)
{
   Whale whale = new Whale();
   whale.printName();
}
์ด ์ฝ”๋“œ๋Š” ํ™”๋ฉด์— ๋‹ค์Œ์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
I'm a whale

Cowํด๋ž˜์Šค๋ฅผ ์ƒ์†ํ•˜๊ณ  printName๋ฉ”์„œ๋“œ๋ฅผ ์žฌ์ •์˜ํ•œ ํ›„ Whaleํด๋ž˜์Šค์—๋Š” ์‹ค์ œ๋กœ ๋‹ค์Œ ๋ฐ์ดํ„ฐ์™€ ๋ฉ”์„œ๋“œ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

class Whale
{
   public void printColor()
   {
      System.out.println("I'm a white whale");
   }

   public void printName()
   {
      System.out.println("I'm a whale");
   }
}
์šฐ๋ฆฌ๋Š” ์˜ค๋ž˜๋œ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๋ชจ๋ฆ…๋‹ˆ๋‹ค.