[ μλ° μμ ]
[ μμ(Inheritance) ]
- κΈ°μ‘΄ ν΄λμ€μ κΈ°λ₯μ μΆκ°, μ¬μ μνμ¬ μλ‘μ΄ ν΄λμ€λ₯Ό μ μνλ κ²
- μμμ μΊ‘μν, μΆμνμ λλΆμ΄ κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°μ νΉμ± μ€ κ°μ₯ μ€μν κ°λ μ
- μμμ μ΄μ©νλ©΄ κΈ°μ‘΄μ μ μλμ΄ μλ ν΄λμ€μ λͺ¨λ νλμ λ©μλλ₯Ό μμλ°μ
μλ‘μ΄ ν΄λμ€ μ¬μ©/μμ± κ°λ₯
[ μμμ μ₯μ ]
β κΈ°μ‘΄μ μμ±λ ν΄λμ€ μ¬μ¬μ© κ°λ₯
β‘ ν΄λμ€ κ°μ κ³μΈ΅μ λΆλ₯ λ° κ΄λ¦¬λ₯Ό ν΅ν΄ μ μ§λ³΄μμ μ©μ΄
[ ν΄λμ€μ κ³μΈ΅ ꡬ쑰 ]
[ μμμΌλ‘ μΈν ν΄λμ€μ κ³μΈ΅ ꡬ쑰 ]
- μμμ λ°μ λ μ¬μ©ν ν΄λμ€λ μλμ κ°μ΄ λΆλ¦
· μμ ν΄λμ€ (super class)
· λΆλͺ¨ ν΄λμ€ (parent class)
· κΈ°μ΄ ν΄λμ€ (base class)
- μμμ ν΅ν΄ μλ‘κ² μμ±λλ ν΄λμ€λ μλμ κ°μ΄ λΆλ¦
· νμ ν΄λμ€ (sub class)
· μμ ν΄λμ€ (child class)
· νμ ν΄λμ€ (derived class)
- μλ°μ μ΅μμ μνΌ ν΄λμ€λ java.lang.Object,
λͺ μμ μΌλ‘ μ§μ νμ§ μμ μ λͺ¨λ ν΄λμ€λ Objectμ μλΈ ν΄λμ€μ.
- λ°λΌμ μλ°μμ λ§λλ λͺ¨λ κ°μ²΄λ Object μλ£νμΌλ‘λ μ¬μ© κ°λ₯.
- μλ°μ λͺ¨λ ν΄λμ€λ νλ μ΄μμ νμ ν΄λμ€λ₯Ό κ°μ§ μ μμΌλ,
μμ ν΄λμ€λ νλλ§μ κ°μ§ μ μμ.(final ν΄λμ€λ νμ ν΄λμ€ λ³΄μ λΆκ°)
- μ€λ³΅ μμμ λΆκ°λ₯(μΈν°νμ΄μ€λ₯Ό μ΄μ©ν μ€λ³΅ ꡬν κ°λ₯)

[ ν΄λμ€ μμ μ μΈ ]
- ν΄λμ€ μμμ μν΄μλ extends ν€μλλ₯Ό μ¬μ©
- λ¨μΌ μμλ§μ μ§μ
[ public / final / abstract ] calss class_name extends super_class_name {
... // λ©€λ² νΈμ μ μΈ
... // μμ±μ μ μΈ
... // λ©μλ μ μΈ
}

[ ν΄λμ€ μμ μμ ]
// Mammaliaμ λΆλͺ¨ ν΄λμ€μΈ Animal ν΄λμ€
class Animal{
private String ani_a = "rabbit"; // private λ©€λ² νλ
public String ani_b = "lion"; // public λ©€λ² νλ
// Object ν΄λμ€λ₯Ό 묡μμ μΌλ‘ μμλ°κΈ°μ Object μλ£ν μ μΈ κ°λ₯
public Object ani_c = "dog";
// -- Getter & Setter Method --
// String μλ£νμ λ§€κ°λ³μλ‘ μ λ¬λ°μ ani_aμ κ°μ λ³κ²½νλ λ©μλ
public void setAni_a(String ani_a) {
this.ani_a = ani_a;
}
// privateμΌλ‘ μ μΈλ ani_aμ κ°μ κ°μ Έμ€λ λ©μλ
public String getAni_a() {
return this.ani_a;
}
// String μλ£νμ λ§€κ°λ³μλ‘ μ λ¬λ°μ ani_bμ κ°μ λ³κ²½νλ λ©μλ
public void setAni_b(String ani_b) {
this.ani_b = ani_b;
}
}
// Animal ν΄λμ€μ μμ ν΄λμ€μΈ Mammalia ν΄λμ€
class Mammalia extends Animal{
void printAnimal() {
this.setAni_a("tiger");
System.out.println("ani_b = " + this.ani_b);
this.setAni_b("panda");
}
}
public class TestCode {
public static void main(String[] args) {
Mammalia mm = new Mammalia();
/* < IS-A κ΄κ³ μμ >
* μμκ΄κ³μ μμ κ²½μ° μμ ν΄λμ€μ κ°μ²΄λ λΆλͺ¨ ν΄λμ€μ μλ£νμΈκ²μ²λΌ μ μΈ κ°λ₯
* λ€λ§ μ΄ κ²½μ° Mammalia ν΄λμ€μ printAnimal() λ©μλ μ¬μ©μ΄ λΆκ°ν¨
* ( Mammalia ⊂ Animal )
Animal mm2 = new Mammalia(); -- μμ κ΄κ³μ λ°λΌ μ μΈ κ°λ₯
* λΆλͺ¨ ν΄λμ€μ κ°μ²΄λ₯Ό μμ ν΄λμ€μ μλ£νμΌλ‘λ μ μΈ λΆκ°
* ( Animal ⊃ Mammalia )
Mammalia mm3 = new Animal(); -- μμ κ΄κ³μ λ°λΌ μ μΈ λΆκ°
*/
System.out.println("ani_a = " + mm.getAni_a());
mm.printAnimal();
// mm2.printAnimal(); -- μ€λ₯ λ°μ
System.out.println("==============");
System.out.println("ani_a = " + mm.getAni_a());
System.out.println("ani_b = " + mm.ani_b);
}
}
/* [μΆλ ₯ κ²°κ³Ό]
ani_a = rabbit
ani_b = lion
==============
ani_a = tiger
ani_b = panda */