μμκ³Ό κ΄ν μ¬λ¬ κ°μ²΄μ§ν₯ μ©μ΄λ€βοΈ
01 . μ€λ²λΌμ΄λ©
- μμ ν΄λμ€λ₯Ό μμ λ°μ νμ ν΄λμ€μμ μμ ν΄λμ€μ μ μλ λ©μλλ₯Ό μ¬μ μ(overriding) νλ κ²
- μμ ν΄λμ€μ λ©μλ κΈ°λ₯μ μ μ§νλ©΄μ μν©μ λ°λΌ νμ ν΄λμ€μμ λ³νλ κΈ°λ₯μ μ¬μ©ν κ²½μ° μ¬μ©νλ©° λ€νμ±(Polymorphism) ꡬνμ ν΅μ¬ μ리
override λ κ²½μ°μλ μ¬μ μλ λ©μλκ° νΈμΆμ΄ λκ³ , μμν΄λμ€λ λ©μλλ μ¨λλ€.
β‘ μλ²μ§κ° λ¬Όλ €μ£Όμ κ°μμ€μ μμμ΄ PCλ°©μΌλ‘ λ³κ²½νλλ°, μ κΉ μλ²μ§νν
λ΄λ¬λΌκ³ νλ€λ©΄?
μλ²μ§λ κ°μμ€μ λ³Ό μ μκ³ , PCλ°©μ 보λ κ²κ³Ό κ°μ μ리!! π
02. μΊμ€ν
ν λ³νμ μμ κ΄κ³μμλ§ κ°λ₯ν κ²μΌλ‘ νμ κ΄κ³λ μλ€. (νμ λ λ¨μ΄λ€)
1. μ μΊμ€ν (Up-casting)
- νλ‘κ·Έλ¨ μ€ν μ μλ νμ λ³ν(Promotion)μ΄ μΌμ΄λλ―λ‘ λ¬΅μμ μΌλ‘ μΊμ€ν μ΄ κ°λ₯
μΈμ λ κ°λ₯νλ©°, νλ³νμ νμ§ μμλ λλ€.
νλλ μ μΊμ€ν λμ΄ μμ΄λ 무쑰건 μμ κ². μμΌλ©΄ μμ κ².
μμν΄λμ€ κ°μ²΄λͺ
= νμν΄λμ€κ°μ²΄;
μΈν°νμ΄μ€ κ°μ²΄λͺ
= ꡬνν΄λμ€κ°μ²΄;
2. λ€μ΄ μΊμ€ν (Down-casting)
- μμ ν΄λμ€μ κ°μ²΄λ₯Ό νμ ν΄λμ€μ κ°μ²΄μ λμ
νλ κ²μΌλ‘ μ
μΊμ€ν
(up-casting)ν κ²μ λ€μ μλμ νμΌλ‘ λ³ν
- μ
μΊμ€ν
λ κ²λ§ λ€μ΄ μΊμ€ν
κ°λ₯
- 묡μμ μΌλ‘ μΊμ€ν
μ΄ λΆκ°λ₯νλ©°, λ°λμ λͺ
μμ μΈ ν λ³ν(κ°μ μΊμ€ν
)μ ν΄μΌ νλ€. βοΈ
νμν΄λμ€ κ°μ²΄λͺ
= (νμν΄λμ€) μμν΄λμ€κ°μ²΄;
ꡬνν΄λμ€ κ°μ²΄λͺ
= (ꡬνν΄λμ€) μΈν°νμ΄μ€κ°μ²΄;
3. instacncof μ°μ°μ
- μ£Όμ΄μ§ κ°μ²΄κ° μ΄λ€ ν΄λμ€ λλ κ·Έ ν΄λμ€κ° μμνλ νμ ν΄λμ€μ μΈμ€ν΄μ€μΈμ§λ₯Ό κ²μ¬νκΈ° μν΄ μ¬μ© (true/flase)
-νμ
κ°μ²΄λͺ
instanceof ν΄λμ€λͺ
κ°μ²΄λͺ instanceof μΈν°νμ΄μ€λͺ
03. Staticκ³Ό final μμ μ
1. static
static μ§μμλ‘ μ§μ λ μμκ° νΉμ μΈμ€ν΄μ€μ μν κ²μ΄ μλκ³ , ν΄λΉ ν΄λμ€μ μνλ κ²μ μλ―Ένλ κ²μΌλ‘ ν΄λμ€λ₯Ό λ©λͺ¨λ¦¬μ loadingν λ μλ° λ©λͺ¨λ¦¬ μμ μ€ λ©μλ μμμ μ μ¬λλ€. μ¦, κ°μ²΄κ° μμ±λκΈ° μ μ λ¨Όμ λ©λͺ¨λ¦¬ μμ λ‘λ©λμ΄μ§λ€.
2. final μμ μ
μμμ μλ―Έλ₯Ό κ°μ§κ³ μλ ν€μλλ‘μ ν΄λ μ€μ λ©μλ, λ©€λ² λ³μ, μ§μλ³μ, λ©μλ μΈμ λ±μ μ¬μ© κ°λ₯ν¨
β‘ λνμ μΈ final ν΄λμ€ : String, StringBuffer, StringBuilder
β final ν΄λμ€
final ν΄λμ€λ μ λλ‘ μμμ κ°μ§ μ μλ ν΄λμ€
[μ κ·Όμ νμ] final class ν΄λμ€μ΄λ¦ { // ν΄λμ€ κ΅¬ν
}
β‘ final λ³μ
ν λ² κ°μ μ§μ νμΌλ©΄ μλμ μΌλ‘ κ°μ λ°κΏ μ μμ
- λ©μλ λ΄μμ μμ μ μΈ
final λ°μ΄ν°ν λ³μλͺ
= μ΄κΈ°κ°;
- ν΄λμ€ λ©€λ²μμ μμ μ μΈ
[μ κ·Όμ μ΄μ] [static]final λ°μ΄ν°ν λ³μλͺ
= [μ΄κΈ°κ°];
β’ final λ©μλ
λ©μλμ final ν€μλλ₯Ό λΆμ΄λ©΄ μ€λ²λΌμ΄λ©(μ¬μ μ) λΆκ°λ₯
ν΄λμ€κ° finalλ‘ μ μΈλ κ²½μ° λ©μλλ λ³λλ‘ λͺ μνμ§ μμλ final λ©μλ
[μ κ·Όμ νμ] final λ°νν λ©μλλͺ
() { // λ©μλ ꡬν
}
'π»Programming > βοΈJava' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[JAVA] DAOμ VO μ μμ μ¬μ©λ² (0) | 2022.07.31 |
---|---|
[JAVA] μ΄κ±°ν νμ (0) | 2022.07.27 |
[JAVA] κ°μ²΄μ§ν₯_μΈν°νμ΄μ€ (0) | 2022.07.26 |
[JAVA]κ°μ²΄μ§ν₯_μΆμ ν΄λμ€ (0) | 2022.07.26 |
[JAVA] κ°μ²΄μ§ν₯_μμ (0) | 2022.07.25 |