μμμ 곡λΆνλ€λ©΄ μμ°μ€λ½κ² λ±μ₯νλ κ°λ μ΄ μΆμ ν΄λμ€λ€.
μΆμ ν΄λμ€λ μμ νμ§ μμ μ€κ³λλ€.
μ¦, μΌλΆ κΈ°λ₯μ ꡬνλμ§ μμ μνλ‘ λ¨κ²¨λλ ν΄λμ€λ€.
1. μΆμ ν΄λμ€λ?
μΆμ ν΄λμ€λ abstract ν€μλλ₯Ό μ¬μ©ν΄ μ μνλ€.
abstract class Animal {
abstract void sound();
}
νΉμ§
- κ°μ²΄ μμ± λΆκ°
- μΆμ λ©μλλ₯Ό κ°μ§ μ μμ
- μΌλ° λ©μλλ κ°μ§ μ μμ
2. μΆμ λ©μλ
ꡬνμ΄ μλ λ©μλλ€.
abstract void sound();
- λ©μλ μ μΈλ§ μ‘΄μ¬
- μ€κ΄νΈ {} μμ
- μμ ν΄λμ€μμ λ°λμ ꡬνν΄μΌ ν¨
3. μ μΆμ ν΄λμ€λ₯Ό μ¬μ©ν κΉ?
κ³΅ν΅ κ΅¬μ‘°λ μ 곡νμ§λ§ ꡬ체μ μΈ λμμ μμμκ² λ§‘κΈ°κΈ° μν΄ μ¬μ©νλ€.
abstract class Animal {
void breathe() {
System.out.printIn("μ¨μ μ°λ€.");
}
abstract void sound();
}
- μ¨μ¬λ κΈ°λ₯μ 곡ν΅
- μ리λ λλ¬Όλ§λ€ λ€λ¦
4. μμ ν΄λμ€μμ ꡬν
class Dog extends Animal {
@Override
void sound() {
System.out.printIn("λ©λ©");
}
}
μΆμ ν΄λμ€λ₯Ό ꡬννμ§ μμΌλ©΄ ν΄λΉ ν΄λμ€λ abstractκ° λμ΄μΌ νλ€.
5. κ°μ²΄ μμ± λΆκ°
Animal a = new Animal(); //μ€λ₯
μΆμ ν΄λμ€λ μ€κ³ κ°λ μ΄κΈ° λλ¬Έμ μ§μ μΈμ€ν΄μ€ μμ±μ΄ λΆκ°λ₯νλ€.
νμ§λ§ λ€νμ±μ κ°λ₯νλ€.
Animal a = new Dog();
6. μΆμ ν΄λμ€μ λ€νμ±
μΆμ ν΄λμ€λ λ€νμ±μ μν κΈ°λ° κ΅¬μ‘°λ€.
- κ³΅ν΅ νμ μ 곡
- μμ κ°μ²΄λ₯Ό λΆλͺ¨ νμ μΌλ‘ κ΄λ¦¬
- λμ λ°μΈλ© λ°μ
μ¦, μΆμ ν΄λμ€λ "μμ κ°λ "μ νννκΈ° μν΄ μ‘΄μ¬νλ€.
7. μΌλ° ν΄λμ€μμ μ°¨μ΄
| κ΅¬λΆ | μΌλ° ν΄λμ€ | μΆμ ν΄λμ€ |
| κ°μ²΄ μμ± | κ°λ₯ | λΆκ°λ₯ |
| μΆμ λ©μλ | λΆκ°λ₯ | κ°λ₯ |
| λͺ©μ | ꡬ체μ ꡬν | κ³΅ν΅ κ°λ μ μ |
8. μΈν°νμ΄μ€μμ μ°¨μ΄(κ°λ¨ λΉκ΅)
| κ΅¬λΆ | μΆμ ν΄λμ€ | μΈν°νμ΄μ€ |
| λ€μ€ μμ | λΆκ°λ₯ | κ°λ₯ |
| μΌλ° λ©μλ | κ°λ₯ | Java 8 μ΄ν default κ°λ₯ |
| νλ | μΌλ° νλ κ°λ₯ | μμλ§ κ°λ₯ |
| λͺ©μ | κ³΅ν΅ κΈ°λ₯ + μΌλΆ ꡬν | κΈ°λ₯μ κ·μ½ μ μ |
μΆμ ν΄λμ€λ "λΆλΆ ꡬν"
μΈν°νμ΄μ€λ "νλμ κ·μ½"μ κ°κΉλ€.
9. μΈμ μ¬μ©ν΄μΌ ν κΉ?
μΆμ ν΄λμ€λ λ€μ μν©μ μ ν©νλ€.
- κ³΅ν΅ κΈ°λ₯μ μΌλΆ ꡬννκ³ μΆμ λ
- μμ ν΄λμ€ κ° κ°ν μ°κ΄ κ΄κ³κ° μμ λ
- μν(νλ)λ₯Ό 곡μ ν΄μΌ ν λ
'Back-End > Java' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
| 10. κΈ°λ³Έ ν΄λμ€(Core Class) (0) | 2026.02.12 |
|---|---|
| 09. μΈν°νμ΄μ€(Interface) (0) | 2026.02.11 |
| 07. μμκ³Ό λ€νμ± (0) | 2026.02.11 |
| 06. λ°°μ΄κ³Ό ArrayList (0) | 2026.02.11 |
| 05. ν΄λμ€μ κ°μ²΄ (0) | 2026.02.11 |