-
μΆμν΄λμ€μ μΈν°νμ΄μ€λ₯Ό μ μ©ν΄ μ½λ ꡬννκΈ° (1)μ΄λ‘Java 2022. 8. 21. 22:13
π https://docs.oracle.com/javase/tutorial/java/IandI/abstract.html
μ λ§ν¬λ₯Ό μ°Έκ³ νμμΌλ©°, μ΄ν΄κ° μλλ λΆλΆμ μ€ν΅νμμ΅λλ€. μμ μ½λλ₯Ό μ°Ύμλ³΄κ³ μΆκ° μμ±ν μμ μ λλ€.
0. λͺ©ν
μμκ³Ό μΈν°νμ΄μ€λ₯Ό μ μ©ν΄ μ½λλ₯Ό ꡬννλ €κ³ νλ€.
μΈν°νμ΄μ€λ₯Ό ꡬνν μΆμ ν΄λμ€κ° μκ³ , μλΈ ν΄λμ€μμ μ΄ μΆμ ν΄λμ€λ₯Ό μμνμ¬ μ¬μ©ν κ²μ΄λ€. μ½λλ₯Ό ꡬννκΈ°μ μμ μ΄λ€ κΈ°λ₯μ μΆμ ν΄λμ€λ‘ λ§λ€κ³ μΈν°νμ΄μ€λ‘ λ§λ€μ΄μΌ νλμ§ λ κ°λ λΆν° μμ보μ.1. μΆμλ©μλμ μΆμν΄λμ€ ?
μΆμν΄λμ€λ abstract κ° μ μΈλ ν΄λμ€μ΄λ€. μΆμν΄λμ€μλ μΆμλ©μλκ° ν¬ν¨λ μλ μκ³ ν¬ν¨λμ§ μμ μλ μλ€.
μΆμν΄λμ€λ μΈμ€ν΄μ€ν(new Class) ν μ μμ§λ§, νμν΄λμ€ν ν μλ μλ€.
μΆμλ©μλλ μλμ κ°μ΄ ꡬν μμ΄ μ μΈλ λ©μλμ΄λ€. (μ€κ΄νΈ({})κ° μκ³ , μΈλ―Έμ½λ‘ μΌλ‘ λλλ€.)abstract void moveTo(double deltaX, double deltaY);
ν΄λμ€μ μΆμλ©μλκ° ν¬ν¨λ κ²½μ°, κ·Έ ν΄λμ€λ λ°λμ abstract μμ½μ΄λ₯Ό μ μΈν΄μΌνλ€.
public abstract class GraphicObject { // declare fields // declare nonabstract methods abstract void draw(); }
μΆμ ν΄λμ€κ° νμ ν΄λμ€ν λ λ, κ·Έ νμ ν΄λμ€λ λ³΄ν΅ λΆλͺ¨ ν΄λμ€μ μλ λͺ¨λ μΆμ λ©μλλ₯Ό ꡬνν μ½λλ₯Ό μμ±ν΄μΌ νλ€. (λͺΈν΅μ μ±μμΌ νλ€!) λ§μ½, νμ ν΄λμ€μμλ μΆμ λ©μλλ₯Ό ꡬννμ§ μλλ€λ©΄ abstract λ₯Ό μ μΈν΄μΌ νλ€.
2. μΈν°νμ΄μ€μ λΉκ΅ν΄ λ³Έ μΆμν΄λμ€
μΆμν΄λμ€λ μΈν°νμ΄μ€μ μ μ¬νλ€. λ λ€ μΈμ€ν΄μ€ν ν μ μκ³ , μΆμν΄λμ€μ μΈν°νμ΄μ€ λͺ¨λ ꡬνμ΄ λ λ©μλμ ꡬνλμ§ μμ λ©μλκ° νΌν©λμ΄ μμ μ μλ€. (μλ° 8 μ΄νλΆν° μΈν°νμ΄μ€μμλ λ©μλλ₯Ό μ μν μ μλ€.)
νμ§λ§ μΆμν΄λμ€λ static, finalμ΄ μλ νλλ₯Ό μ μΈν μ μκ³ , public, protected, private μ κ·Ό μ§μ μλ₯Ό μ¬μ©ν μ μλ€.
μΈν°νμ΄μ€λ λͺ¨λ νλκ° μλμΌλ‘ public, static, final μ΄κ³ , μ μΈνκ±°λ μ μνλ λͺ¨λ λ©μλ(default method)λ public μ΄λ€.
κ²λ€κ° μΆμν΄λμ€λ μλλ λ± νλμ ν΄λμ€λ§μ μμν μ μμ§λ§ μΈν°νμ΄μ€λ μ¬λ¬ κ°λ₯Ό ꡬνν μ μλ€.3. μΈν°νμ΄μ€μ μΆμν΄λμ€ μ€ μ΄λ€ κ²μ μ¬μ©ν΄μΌ νλκ°?
μλμ μ¬νμ ν΄λΉλλ€λ©΄ μΆμ ν΄λμ€λ₯Ό μ¬μ©νλ κ²μ κ³ λ €ν΄λ³΄μ.
Β· λ°μ νκ² μ°κ΄λ μ¬λ¬κ°μ ν΄λμ€μμ μ½λλ₯Ό 곡μ νκΈ°λ₯Ό μνλ κ²½μ°
μλμ μ¬νμ ν΄λΉλλ€λ©΄ μΈν°νμ΄μ€λ₯Ό μ¬μ©νλ κ²μ κ³ λ €ν΄λ³΄μ.
Β· κ΄λ ¨ μλ ν΄λμ€μμ μΈν°νμ΄μ€λ₯Ό ꡬνν κ²μΌλ‘ μμλλ κ²½μ°. μλ₯Ό λ€λ©΄ Comparable, Cloneable μΈν°νμ΄μ€λ μλ‘ κ΄λ ¨μ΄ μλ μλ§μ ν΄λμ€μμ ꡬνλκ³ μλ€.
'Java' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
λλ€μμ΄λ μ‘°κΈ μΉν΄μ Έλ³΄μ! (0) 2022.08.26 compareTo() λ©μλμ μ€λ¦μ°¨μ, λ΄λ¦Όμ°¨μμ΄ λ¬΄μ¨ μκ΄? (0) 2022.08.14