1. ์ ์
๋ถ๋ชจ ํด๋์ค์ ๋งค์๋๋ฅผ ์์ ํด๋์ค๊ฐ ์ฌ์ ์ ํ๋ ๊ฒ
๋ฐ๋ผ์ ์์ํด๋์ค์์ ํด๋น ๋งค์๋๋ฅผ ํธ์ถ ํ ๊ฒฝ์ฐ, ๋ถ๋ชจ ํด๋์ค์ ๋ณธ ๋งค์๋๊ฐ ์๋ ์๋ก ์ ์๋ ์์ ํด๋์ค์ ๋ฉ์๋๊ฐ ํธ์ถ ๋จ.
**Method Overloading ๊ณผ ๋ค๋ฅธ์
์ค๋ฒ๋ก๋ฉ์ ํ๋ผ๋ฏธํฐ์ ์๋ฃํ, ํ๋ผ๋ฏธํฐ์ ๊ฐฏ์๊ฐ ๋ค๋ฅผ ๊ฒฝ์ฐ์๋ง ์ฌ์ ์ ํ ์ ์๋ค.
์ค๋ฒ๋ก๋ฉ์ ๊ณ์ธต์ด ๋๋ ์ ธ ์์ง ์๋ค.
์ค๋ฒ๋ผ์ด๋ฉ์ ๋ถ๋ชจ-์์์ด๋ผ๋ ๊ณ์ธต์ด ๋๋ ์ ธ ์์ ๋๋ง ๊ฐ๋ฅํ๋ค.
์ค๋ฒ๋ผ์ด๋ฉ์ ๋ถ๋ชจ ํด๋์ค์ ๋งค์๋๋ฅผ ์ฌ์ ์ ํ๋ ๊ฒ์ด๋ฏ๋ก, ์ฌ์ ์ํ ๋งค์๋์ ์ด๋ฆ, ๋งค๊ฐ๋ณ์, ๋ฆฌํด ๊ฐ์ด ๋ถ๋ชจ ํด๋์ค์ ๋งค์๋์ ์ผ์น ํด์ผํ๋ค!
2. ์ฝ๋ ์์
//๋ถ๋ชจ ํด๋์ค
public class Camera {
public String name;
// ์ค๋ฒ๋ผ์ด๋ฉํ ๋งค์๋
public void showMainPicture() {
System.out.println(this.name + "์ ์ฃผ์ ๊ธฐ๋ฅ : ์ฌ์ง ์ดฌ์, ๋์์ ๋
นํ");
}
}
// ์์ ํด๋์ค
public class FactoryCam extends Camera {
// ์ค๋ฒ๋ผ์ด๋ฉ ํ์
public void showMainPicture() {
System.out.println(this.name + "์ ์ฃผ์ ๊ธฐ๋ฅ : ํ์ฌ ๊ฐ์ง");
}
}
**@ : Annotation
: ์ฃผ์์ ๋ปํจ. ํ์ง๋ง //์ ๊ฒฝ์ฐ์ ๋ค๋ฆ.
@๋ ์ปดํ์ผ ํ๋ ์ปดํจํฐ์๊ฒ ํด๋น ์์ ์ด ๋ญ ์๋ฏธํ๋์ง ์๋ฆฌ๊ธฐ ์ํด ๋ค๋ ์ฃผ์์ด๋ค.
@Override > ์ด ๋ฐ์ ๋งค์๋๋ ์ค๋ฒ๋ผ์ด๋ฉ ํ๊ณ ์๋ค, ์ปดํจํฐ์ผ. ํน์ ํด๋น ๋งค์๋๊ฐ ๋ถ๋ชจ ํด๋์ค์ ์๋ค๋ฉด ์๋ ค์ค