π μ΄μ μ μ€λ²λ‘λ©κ³Ό μ€λ²λΌμ΄λ©μ μ°¨μ΄μ μ λν΄μ κΈμ μμ±νλ€. μ΄λ² κΈμμλ μ€λ²λΌμ΄λ©μ λν΄μ λ νμ€νκ² μ΄ν΄νκΈ° μν΄μ μμμ λν μ 리λ₯Ό ν΄λ³΄λ €κ³ νλ€.
μλ°μμ μμμ΄λ?
μΌλ°μ μΌλ‘ μκ°νμ λ μμμ΄λ 무μΈκ°λ₯Ό λΆλͺ¨μκ² λ¬Όλ €λ°λ κ²μ λ§νλ€.
Javaμμμ μμλ λΉμ·νλ€. λΆλͺ¨ν΄λμ€μ λ³μμ λ©μλλ₯Ό μμμ ν΅ν΄ μμν΄λμ€μμ μ¬μ©ν μ μκ² ν΄μ€λ€.
μ‘°κΈ λ κΉκ² λ§νμλ©΄, κΈ°μ‘΄μ ν΄λμ€μ κΈ°λ₯μ μΆκ°νκ±°λ μ¬μ μνμ¬ μλ‘μ΄ ν΄λμ€λ₯Ό μ μνλ κ²μ μλ―Ένλ€.(νμ₯μ κ°λ )
μ΄λ κΈ°μ‘΄μ μ μλμ΄ μλ ν΄λμ€λ₯Ό λΆλͺ¨ν΄λμ€(parent class) λλ μμν΄λμ€(super class)λΌκ³ λΆλ₯΄λ©°, μμμ ν΅ν΄ μλ‘κ² μμ±λλ ν΄λμ€λ₯Ό μμν΄λμ€(child class) λλ νμν΄λμ€(sub class)λΌκ³ νλ€.
π μμμ λΆλͺ¨-μμν΄λμ€ κ°μ κ²°ν©λκ° κ°νκΈ° λλ¬Έμ is-aκ΄κ³μμ μ¬μ©νλ κ²μ΄ κ°μ₯ ν¨μ¨μ μ΄λ€.
is-aκ΄κ³(is a relationship, inheritance)λ μΌλ°μ μΈ κ°λ κ³Ό ꡬ체μ μΈ κ°λ μ κ΄κ³μ΄λ€.
μλ₯Όλ€λ©΄,
- μ¬λμ λλ¬Όμ΄λ€.
- μλ λλ¬Όμ΄λ€.
- κ°μμ§λ λλ¬Όμ΄λ€.
Java μμμ νΉμ§
- μμμ extendsλΌλ μμ½μ΄λ‘ μ μν μ μλ€.
- νλμ λΆλͺ¨ν΄λμ€λ μ¬λ¬κ°μ μμ ν΄λμ€λ₯Ό κ°μ§ μ μλ€. λ°λλ‘ νλμ ν΄λμ€λ μ¬λ¬κ°μ ν΄λμ€λ‘λΆν° μμμ λ°μ μλ μλ€.(λ€μ€μμ λΆκ°)
- μμν΄λμ€λ λ λ€λ₯Έ ν΄λμ€μ λΆλͺ¨ν΄λμ€κ° λ μ μλ€.
- μμν΄λμ€λ λΆλͺ¨ν΄λμ€λ‘λΆν° λ¬Όλ €λ°μ μμμ overrideνμ¬ μμ νμ¬ μ¬μ©ν μ μλ€.(μ κ·Όμ μ΄μκ° public, protectedμΈ κ²μ νν΄μ)
- λΆλͺ¨ν΄λμ€κ° μμλ°μ μμλ μμν΄λμ€κ° μ¬μ© κ°λ₯νλ€.
μμμ μ₯μ
- κΈ°μ‘΄μ μμ±λ ν΄λμ€λ₯Ό μ¬νμ©ν μ μλ€.(μ€λ³΅μ μ€μΌ μ μλ€)
- νμ₯μ±μ΄ μ¦κ°νλ€.
- ν΄λμ€ κ°μ κ³μΈ΅μ κ΄κ³λ₯Ό ꡬμ±ν¨μΌλ‘μ¨ λ€νμ±μ ꡬνν μ μλ€.
- κ°λ° μκ°μ΄ λ¨μΆλλ€.
μμμ λ¬Έμ μ
- μΊ‘μνλ₯Ό κΉ¨λ¨λ¦°λ€.
- μμν΄λμ€λ λΆλͺ¨ν΄λμ€μ κ°νκ² κ²°ν© λ° μμ‘΄νκ² λλ€.
λ€μ μ½λλ₯Ό ν΅ν΄ μμμ λν μ΄ν΄λ₯Ό λμ보μ.
package Inheritance;
public class Inheritance {
// λΆλͺ¨ν΄λμ€
public class ParentClass{
String parent = "I am parent Class";
public void Parent(){
System.out.println("I am ParentClass.Parent()");
}
}
// μμν΄λμ€
public class ChildClass extends ParentClass{
String child = "I am child Class";
public void Child(){
Parent();
System.out.println(parent);
System.out.println("I am ChildClass.Child()");
System.out.println(child);
}
}
// μ€νλ©μλ
public static void main(String[] args) {
Inheritance inheritance = new Inheritance();
ChildClass child = inheritance.new ChildClass();
child.Child();
}
}
μμ μ½λλ₯Ό μ€νν κ²°κ³Όλ μλμ κ°λ€.
I am ParentClass.Parent()
I am parent Class
I am ChildClass.Child()
I am child Class
1) Parent() λ©μλ μ€ν - λΆλͺ¨ν΄λμ€μΈ PrentClassμ Prent()λ₯Ό νΈμΆ
2) parnet λ³μ μ€ν - λΆλͺ¨ν΄λμ€μΈ PrentClassμ λ³μμΈ parnetλ₯Ό νΈμΆ
3)ChildClassμ λ©μΈμ§λ€μ μΆλ ₯
μμ μ½λμ²λΌ ChildClassλΌλ κ°μ²΄λ₯Ό λ§λ€μλλ° ParentClassμ μ μΈλ λ©μλμ λ³μκ° μΆλ ₯λλ κ²μ λ³Ό μ μλ€. μμ²λΌ μμμ ν΅ν΄ μμν΄λμ€μμ λΆλͺ¨ν΄λμ€μ μλ λ©μλ λ° λ³μμ μμ±μ λ¬Όλ €λ°μ μ¬μ©ν μ μλ€.
'Language > Java' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Java] JAVA 8 νΉμ§ (0) | 2021.08.18 |
---|---|
[Java] λ€νμ±(polymorphism)μ΄λ? (0) | 2021.08.15 |
[Java] μ€λ²λΌμ΄λ©(Overriding)κ³Ό μ€λ²λ‘λ©(Overloading)μ μ°¨μ΄μ (0) | 2021.08.11 |
[Java] λ³μ(Variable)μ μλ£ν(Data type) (0) | 2021.07.18 |
[Java] μΌνμ°μ°μ μμ보기 (0) | 2020.11.25 |
λκΈ