κ°μ²΄κ° μμ±λ λ μλμΌλ‘ νΈμΆλλ λ©μλλ‘ λ°νκ°μ΄ μμΌλ©° ν΄λμ€μ λ©€λ² λ³μ μ΄κΈ°νλ₯Ό λ΄λΉνλ€.
μ½κ² λ§νμλ©΄ ν΄λμ€μ μ΄λ¦μ΄ λμΌν λ©μλλΌκ³ ν μ μλ€.
μμ±μκ° νΈμΆλ λ μ€νλλ μμλ λ€μκ³Ό κ°λ€.
1. μμ±μ νΈμΆ
2. μΈμ€ν΄μ€ μμ±
ν΄λμ€λͺ
λ³μλͺ
= newν΄λμ€λͺ
(νλΌλ―Έν°);
λ³μλͺ
.λ©μλλͺ
();
κ°μ²΄μ λ³μμ λ©μλλ₯Ό λ€λ₯Έ κ°μ²΄κ° λ¬Όλ €λ°λ κ²μΌλ‘ μμ ν΄λμ€λ₯Ό μμ±νλ©΄ 무쑰건 λΆλͺ¨ ν΄λμ€μ μμ±μλ₯Ό μ€νν νμ μμ ν΄λμ€μ μμ±μλ₯Ό μ€νν΄μΌ νλ€.
class λΆλͺ¨_ν΄λμ€λͺ
{
}
class μμ_ν΄λμ€λͺ
extends λΆλͺ¨_ν΄λμ€λͺ
{
}
λ§μΌ λΆλͺ¨ ν΄λμ€μ μμ±μκ° νΈμΆλ κ²½μ°μλ λΆλͺ¨ν΄λμ€ μμ±μλ§ νΈμΆνλ©΄ λλ€.
μμ μμ±μ νΈμΆμ ---> λΆλͺ¨ μμ±μ νΈμΆβ
λΆλͺ¨ μμ±μ νΈμΆμ ---> μμ μμ±μ νΈμΆβ
β λΆλͺ¨ λλ μμ ν΄λμ€μ μμ±μκ° μλ€λ©΄ κ·Έλλ‘ μλ΅νλ©΄ λλ€.(skip)
β μμ±μμ νλΌλ―Έν° μ 무μ λ°λΌ μμ±μλ₯Ό νΈμΆνκ² λλ€.
(νλΌλ―Έν°κ° μμκ²½μ°μλ νλΌλ―Έν°κ° μλ μμ±μλ₯Ό νΈμΆ / μλ€λ©΄ μλ μμ±μλ₯Ό νΈμΆ)
μμ μμ±μ λ΄μ super()ν€μλκ° μμ κ²½μ° μ΄λ μ΄λ€ λΆλͺ¨ ν΄λμ€μ μμ±μ μΈμ§λ₯Ό μ§μ ν΄μ£Όλ μλ―Έλ‘ λΆλͺ¨ν΄λμ€ === super() λ‘ κ°μ μλ―Έλ‘ μ΄ν΄ν μ μλ€.
β super()ν΄λμ€λ λμΌνκ² μμ±μμ νλΌλ―Έν° μ 무μ λ°λΌ νΈμΆνκ² λλ€.
β λ§μΌ μμν΄λμ€μμ super()ν΄λμ€κ° μλ€κ³ νλλΌλ μ΄λ μ½λμ μλ΅λ κ²μ΄λ©° νλΌλ―Έν°κ° μλ λΆλͺ¨ν΄λμ€ μμ±μλ₯Ό νΈμΆνλ©΄ λλ€.
μμν΄λμ€μ μμ±μλ₯Ό νΈμΆν λ λΆλͺ¨ν΄λμ€λ₯Ό λ¨Όμ νΈμΆνκ² λλ μ΄μ κ° μ΄ λλ¬Έμ΄λ€.
// λΆλͺ¨ ν΄λμ€
class Parent {
// μμ±μ
Parent() {
System.out.println("νΈμΆλ κΉμ");
}
// μμ±μ
Parent(int a) {
System.out.println("Parent ν΄λμ€μ μμ±μκ° νΈμΆλμμ΅λλ€.");
}
}
// μμ ν΄λμ€
class Child extends Parent {
int childValue;
// μμ±μ
Child() {
super(parentValue); // λ§€κ°λ³μκ° μλ λΆλͺ¨ ν΄λμ€μ μμ±μ νΈμΆ
System.out.println("Child ν΄λμ€μ μμ±μκ° νΈμΆλμμ΅λλ€.");
}
}
public class Main {
public static void main(String[] args) {
Child child = new Child();
}
}
μ μ½λμμμ κ°μ΄ super(parentValue) λ§€κ°λ³μκ° μλ μμ±μλ₯Ό νΈμΆνμκΈ° λλ¬Έμ
μΆλ ₯κ°μ λ€μκ³Ό κ°μ΄ μΆλ ₯λλ€.
β println :κ°νλμ΄ μΆλ ₯
β print : κ°νλμ§ μκ³ μ΄μ΄μ μΆλ ₯
Parent ν΄λμ€μ μμ±μκ° νΈμΆλμμ΅λλ€.
Child ν΄λμ€μ μμ±μκ° νΈμΆλμμ΅λλ€.
νμ ν΄λμ€μμ μμ ν΄λμ€μ λ§€μλλ₯Ό μ¬μ μ ν μ μλ κΈ°λ₯
class λΆλͺ¨_ν΄λμ€λͺ
{
public λ°ν_μλ£ν λ©μλλͺ
(μλ£ν λ³μλͺ
){
}
}
class μμ_ν΄λμ€λͺ
extends λΆλͺ¨_ν΄λμ€λͺ
{
public λ°ν_μλ£ν λ©μλλͺ
(μλ£ν λ³μλͺ
){ //λΆλͺ¨ ν΄λμ€μ λ©μλλͺ
κ³Ό λ§€κ°λ³μκ° λμΌν΄μΌ νλ€.
}
}
λμΌν μ΄λ¦μ λ©μλλ₯Ό λ§€κ°λ³μλ§ λ€λ₯΄κ² νμ¬ μ¬λ¬κ°λ₯Ό μ μν μ μλ κΈ°λ₯
λ¨ λ§€κ°λ³μμ κ°―μμ νμ
μ λ¬λΌμΌ νλ€.
staticμ λ°νκ°μ staticμ΄μ¬λ§ νλ€.
staticμ μ½λ μ€νμ λ¨Όμ λ©λͺ¨λ¦¬μ ν λΉλκ² λ¨
λΆλͺ¨_ν΄λμ€μ μμ_ν΄λμ€μ λμΌν μ΄λ¦μ λ©μλκ° μλ€λ©΄ μμ_ν΄λμ€μ λ©μλλ§ νΈμΆ(μ€λ²λΌμ΄λ© κ΄κ³)
λ³μμ μΈ ν κ°μ ν λΉν μ κ°μ String Poolμ μ μ₯λκ³ λ€λ₯Έ λ³μμμλ κ°μ κ°μ κ°μ§κ³ μμ μ μ΄λ λμΌν μ£Όμκ°μ κ°κ² λλ€.
newλ₯Ό μ¬μ©νμ¬ λ³μ μ μΈμ μΈμ€ν΄μ€κ° μμ±λκ³ μ΄λ String Poolκ³Ό λ³λμ 곡κ°μ μ μ₯λλ€. κ·Έλ κΈ° λλ¬Έμ String Poolμ μ μ₯λ κ°κ³Ό newν€μλλ₯Ό μ¬μ©ν΄ μμ±λ μΈμ€ν΄μ€μ κ°μ΄ κ°λλΌλ μ£Όμκ°μ΄ λ€λ₯΄λ€.
λΉκ΅μ°μ°μ == μ μ£Όμκ°μ λΉκ΅ equals()λ κ°μ κ°μΈμ§λ§ λΉκ΅νλ€.