μμ (Inheritance)
λΆλͺ¨ ν΄λμ€μ μ μλ λ³μμ λ©μλλ₯Ό μμ ν΄λμ€μμ λ¬Όλ €λ°μ μ¬μ¬μ©νλ κ²
INDEX
μμμ κΈ°λ³Έ κ°λ
μμμ ν΅ν΄ κΈ°μ‘΄μ μμ±λ ν΄λμ€(λΆλͺ¨ ν΄λμ€/μμ ν΄λμ€/κΈ°λ° ν΄λμ€)μ κΈ°λ₯μ κ·Έλλ‘ λ¬Όλ €λ°μΌλ©΄μ μλ‘μ΄ κΈ°λ₯μ μΆκ°νκ±°λ κΈ°μ‘΄ κΈ°λ₯μ μμ ν μ μλ μλ‘μ΄ ν΄λμ€(μμ ν΄λμ€/νμ ν΄λμ€/νμ ν΄λμ€)λ₯Ό λ§λ€ μ μμ΅λλ€.
// λΆλͺ¨ ν΄λμ€
class Parent {
String name;
void display() {
System.out.println("λΆλͺ¨ ν΄λμ€μ λ©μλ");
}
}
// μμ ν΄λμ€ - Parent ν΄λμ€λ₯Ό μμ
class Child extends Parent {
int age;
void showInfo() {
System.out.println("μ΄λ¦: " + name + ", λμ΄: " + age);
}
}
Java
볡μ¬
μμμ νΉμ§
νΉμ§ | μ€λͺ
|
μ½λ μ¬μ¬μ©μ± | μ΄λ―Έ μμ±λ ν΄λμ€μ μ½λλ₯Ό μ¬μ¬μ©νμ¬ κ°λ° μκ° λ¨μΆ |
νμ₯μ± | κΈ°μ‘΄ ν΄λμ€λ₯Ό νμ₯νμ¬ μλ‘μ΄ κΈ°λ₯ μΆκ° κ°λ₯ |
μ μ§λ³΄μμ± | κ³΅ν΅ κΈ°λ₯μ μμ ν΄λμ€μ μμ±νμ¬ μ½λ μ€λ³΅ λ°©μ§ |
λ€νμ± κ΅¬ν | μμμ λ€νμ±μ ꡬννλ κΈ°λ°μ΄ λ¨ |
μλ° μμμ νΉμ§
νΉμ§ | μ€λͺ
|
λ¨μΌ μμλ§ μ§μ | μλ°λ λ€μ€ μμμ μ§μνμ§ μμ (ν ν΄λμ€λ νλμ ν΄λμ€λ§ μμ κ°λ₯) |
λͺ¨λ ν΄λμ€λ
Object ν΄λμ€λ₯Ό μμ | μλ°μ λͺ¨λ ν΄λμ€λ λͺ
μμ μΌλ‘ μμνμ§ μλλΌλ
μλμΌλ‘ Object ν΄λμ€λ₯Ό μμ |
extends ν€μλ μ¬μ© | μμμ ꡬνν λ 'extends' ν€μλ μ¬μ© |
λ©μλ μ€λ²λΌμ΄λ©
μμ ν΄λμ€μμ λΆλͺ¨ ν΄λμ€μ λ©μλλ₯Ό μ¬μ μνλ κ²
class Parent {
void display() {
System.out.println("λΆλͺ¨ ν΄λμ€μ λ©μλ");
}
}
class Child extends Parent {
// λ©μλ μ€λ²λΌμ΄λ©
@Override
void display() {
System.out.println("μμ ν΄λμ€μμ μ¬μ μν λ©μλ");
}
}
Java
볡μ¬
super ν€μλ
μμ ν΄λμ€μμ λΆλͺ¨ ν΄λμ€μ λ©€λ²μ μ κ·Όν λ 'super' ν€μλλ₯Ό μ¬μ©ν©λλ€.
class Child extends Parent {
@Override
void display() {
super.display(); // λΆλͺ¨ ν΄λμ€μ display() λ©μλ νΈμΆ
System.out.println("μμ ν΄λμ€μ μΆκ° λμ");
}
}
Java
볡μ¬
super() λ©μλ
λΆλͺ¨ ν΄λμ€μ μμ±μλ₯Ό νΈμΆνλ λ©μλ
β’
μμ ν΄λμ€μ μμ±μμμ λΆλͺ¨ ν΄λμ€μ μμ±μλ₯Ό νΈμΆ μ, λ°λμ 첫 λ²μ§Έ μ€μμ νΈμΆν΄μΌνλ€.
β’
μλ΅ μ μ»΄νμΌλ¬κ° μλμΌλ‘ μ½μ
ν©λλ€.
β¦
β’
super λ©μλ νΈμΆ μΌμ΄μ€
β¦
μλ΅ : super() μλ νΈμΆ
β¦
super() : λΆλͺ¨ κΈ°λ³Έ μμ±μ νΈμΆ
β¦
super( x ) : λΆλͺ¨ 맀κ°λ³μ μμ±μ νΈμΆ
class Parent {
Parent() {
System.out.println("λΆλͺ¨ ν΄λμ€ μμ±μ");
}
}
class Child extends Parent {
Child() {
super(); // λΆλͺ¨ ν΄λμ€μ μμ±μ νΈμΆ
System.out.println("μμ ν΄λμ€ μμ±μ");
}
}
Java
볡μ¬
μμκ³Ό μμ±μ
μμ ν΄λμ€μ κ°μ²΄κ° μμ±λ λ, λΆλͺ¨ ν΄λμ€μ μμ±μκ° λ¨Όμ μ€νλ ν μμ ν΄λμ€μ μμ±μκ° μ€νλ©λλ€.
class Parent {
Parent() {
System.out.println("1. λΆλͺ¨ ν΄λμ€ μμ±μ μ€ν");
}
}
class Child extends Parent {
Child() {
// super()κ° μλ΅λμ΄ μμ
System.out.println("2. μμ ν΄λμ€ μμ±μ μ€ν");
}
}
public class Main {
public static void main(String[] args) {
Child child = new Child();
}
}
// μ€ν κ²°κ³Ό:
// 1. λΆλͺ¨ ν΄λμ€ μμ±μ μ€ν
// 2. μμ ν΄λμ€ μμ±μ μ€ν
Java
볡μ¬
β’
μ΄λ¬ν μ€ν μμλ κ°μ²΄μ μμ ν μ΄κΈ°νλ₯Ό 보μ₯νκΈ° μν¨μ
λλ€.
β’
λΆλͺ¨μ λ©€λ²κ° λ¨Όμ μ΄κΈ°νλ ν, μμμ λ©€λ²κ° μ΄κΈ°νλμ΄μΌ μμ ν κ°μ²΄ μμ±μ΄ κ°λ₯ν©λλ€.