μμ
- μμμ΄λ μ΄λ―Έ μ‘΄μ¬νλ ν΄λμ€λ‘λΆν° λ©€λ²λ€μ λ¬Όλ €λ°λ κ²
- μμλλ ν΄λμ€λ₯Ό μνΌ ν΄λμ€λΌ νκ³ , μμμ λ°λ ν΄λμ€λ₯Ό μλΈ ν΄λμ€λΌ νλ€.
- μλ°μμμ μμμ ν΄λμ€ μ μ λ€μ extendsλ₯Ό μ¨μ£Όκ³ μνΌ ν΄λμ€ μ΄λ¦μ μ μ΄μ£Όλ©΄ λλ€.
- μμμ μ€λ³΅μ μ€μΈλ€.
- λ€μ€μμμ νλ½νμ§ μλλ€.
car class
public class P242_Car { int speed; int gear; public String color; public void speedUp(int increment){ //μλ μ¦κ° λ©μλ speed += increment; } public void speedDown(int decrement){ //μλ κ°μ λ©μλ speed -= decrement; } } ## SportCar class (Car class μμλ°μ) ```java public class P242_SportCar extends P242_Car{ //car λ©μλλ₯Ό μμλ°μ boolean turbo; public void setTurbo(boolean turbo) { //ν°λ³΄λͺ¨λ μ€μ λ©μλ this.turbo = turbo; } }
Test class(Main)
public class P243_Test { public static void main(String[] args) { P242_SportCar s = new P242_SportCar(); s.color = "Red"; s.speedUp(100); s.speedDown(50); s.setTurbo(true); System.out.println(s.color); } }
β μ¬μ μ(μ€λ²λΌμ΄λ©)μ κ°λ
- λ©μλ μ¬μ μλ μλΈ ν΄λμ€κ° νμμ λ°λΌ μμλ λ©μλλ₯Ό λ€μ μ μνμ¬ μ¬μ©νλ κ²μ μλ―Ένλ€.
β μ¬μ μμ μ£Όμν μ
- λ©μλμ ν€λλΆλΆμ μνΌ ν΄λμ€μ ν€λμ λμΌνμ¬μΌ νλ€.
- μ¦, λ©μλμ μ΄λ¦, λ°νν, 맀κ°λ³μμ κ°μμ λ°μ΄ν° νμ μ΄ μΌμΉνμ¬μΌ νλ€.
- λν, μνΌν΄λμ€μ λ©μλλ₯Ό μ¬μ μνλ €λ©΄ λ©μλκ° public μΌλ‘ μ μΈλμ΄ μμ΄μΌ νλ€.
- private λ©μλλ μ¬ μ μ λΆκ°!
β @Override
- μ»΄νμΌλ¬μκ² μνΌ ν΄λμ€μ λ©μλλ₯Ό μ€λ²λΌμ΄λ ν λ €κ³ νλ€λ κ²μ μλ €μ€μ μλ€. λ§μ½ μνΌν΄λμ€μ κ·Έλ¬ν λ©μλκ° μ‘΄μ¬νμ§ μλλ€λ κ²μ κ°μ§νλ©΄ μ€λ₯λ₯Ό λ°μνκ² λ¨
β super
- μμκ΄κ³μμ μνΌ ν΄λμ€μ λ©μλλ νλλ₯Ό λͺ μμ μΌλ‘ μ°Έμ‘°νκΈ° μν΄μ μ¬μ©λ¨
- μλΈν΄λμ€μ μμ±μκ° λ¨Όμ² νΈμΆλκΈ°λ νμ§λ§, μνΌ ν΄λμ€μμ μμλ λΆλΆμ λ¨Όμ μ΄κΈ°ν νκΈ° μνμ¬ μνΌ ν΄λμ€μ μμ±μκ° λ¨Όμ μ€νλμ΄μΌ νλ€.
λͺ μμ νΈμΆ
- λͺ μμ μΌλ‘ μνΌν΄λμ€μ μμ±μλ₯Ό νΈμΆ ν μ μλ€. μ΄λ superλΌλ ν€μλ μ¬μ©
- μνΌν΄λμ€μ νΈμΆμ λ°λμ μμ±μ₯μ 첫λ²μ¬ μ€μ΄μ¬μΌ ν¨.κ·Έλ μ§ μμΌλ©΄ μ»΄νμΌ μ€λ₯ λ°μ
묡μμ νΈμΆ
- μλ°μμλ λͺ μμ μΌλ‘ μνΌν΄λμ€μ μμ±μλ₯Ό νΈμΆν΄μ£Όμ§ μμλ μλΈ ν΄λμ€μ κ°μ²΄κ° μμ±λ λ μλμ μΌλ‘ μνΌ ν΄λμ€μ μμ±μκ° νΈμΆ
- λ§μ½ μμ±μκ° νλλΌλ μ μλμ΄ μλ κ²½μ° λν΄νΈ μμ±μλ₯Ό μλμΌλ‘ μΆκ°νμ§μμ
- κ·Έλ¬λ―λ‘ μνΌν΄λμ€μ μμ±μλ₯Ό λͺ μμ μΌλ‘ νΈμΆν΄μ£Όμ΄μΌ ν¨
class Shape { public Shape(String msg) { System.out.println("Shape μμ±μ()" + msg); } } public class P254_Rectangle extends Shape{ public P254_Rectangle(){ super("MSG"); //μνΌ λ©μλλ₯Ό λͺ μν΄μ€μΌν¨ System.out.println("Rectangle μμ±μ()"); } public static void main(String[] args) { P254_Rectangle d = new P254_Rectangle(); System.out.println(d); } }
- μλ°μμλ ν΄λμ€λ₯Ό μ μν λ λͺ μμ μΌλ‘ μνΌ ν΄λμ€λ₯Ό μ μΈνμ§ μμΌλ©΄ Objectν΄λμ€κ° μνΌ ν΄λμ€κ° λλ€.
- Object ν΄λμ€λ java.langν¨ν€μ§μ λ€μ΄ μμΌλ©° μλ° ν΄λμ€ κ³μΈ΅ ꡬ쑰μμ 맨 μμ μμΉνλ ν΄λμ€
π κ΄μ¬μκ² λ΄μΌν λͺκ°μ§μ λ©μλ
getClass() λ©μλ
- μ΄λ€ ν΄λμ€λ‘ μμ±λμλμ§μ λν μ 보λ₯Ό λ°ν
- 리νλ μ (reflection) μ΄λΌλ κΈ°λ²μ ꡬνν κ²
κ°μ²΄ μμ μ λνμ¬ μ§λ¬Έμ λμ§ μ μλ λ°©λ²equals() λ©μλ
- λ κ°μ²΄λ₯Ό λΉκ΅νμ¬ κ°μΌλ©΄ trueλ₯Ό λ°ννλ€.
finalize() λ©μλ
- μ½λ°± λ©μλλ₯Ό μ μνλ€.μ΄κ²μ κ°μ²΄κ° μλ©ΈλκΈ° μ§μ μ νΈμΆλλ€. Object ν΄λμ€μ finalize()μμλ μ무κ²λ νμ§ μμ§λ§ μλΈ ν΄λμ€μμ μ¬μ μνμ¬μ μμμ λ°λ©νλ λ±μ μ 리 κ³Όμ μ μ€νν¨
toString() λ©μλ
- μ¬μ μνμ¬μΌ νλ λ©μλ
- κ°μ²΄μ λ¬Έμμ΄ ννμ λ°ν
- μνΌν΄λμ€μμ μ’ λ¨ λ©μλλ‘ μ μΈλ λ©μλλ μλΈ ν΄λμ€μμ λμΉ λ μ μλ€.
λ°λ©΄ μΆμ λ©μλλ μ¬μ©λκΈ° μ μ λ°λμ λμΉλμ΄μΌλ§ νλ€. μΆμ λ©μλλ λͺΈμ²΄κ° μ μλμ§ μμ λ©μλλ₯Ό μλ―Έμ’ λ¨ν΄λμ€
- μμμν¬μ μλ ν΄λμ€λ₯Ό λ§νλ€. νμν μ΄μ λ 보μμμ μ΄μ λλ¬Έ
- λνμ μΈ μ) Stringν΄λμ€ ,μ»΄νμΌλ¬μμ λ§μ΄ μ°κΈ° λλ¬Έμ μ’ λ¨ ν΄λμ€λ‘ μ μΈλμ΄ μμ
μ’ λ¨λ©μλ
- μ’ λ¨ν΄λμ€κ° μλ μΌλ° ν΄λμ€μμ νΉμ ν λ©μλλ§ μ¬μ μλ μ μκ² λ§λ€λ €λ©΄ μ’ λ¨λ©μλλ‘ μ μΈ