1. ν΄λμ€ μμ
: μμμ΄ λΆλͺ¨λ₯Ό μ ννλ€. μ νλ λΆλͺ¨λ extends λ€μ κΈ°μ λλ€.
λΆλͺ¨ κ°μ²΄κ° λ¨Όμ μμ±μ΄ λλ©΄, νμ μμμ κ°μ²΄κ° μμ±μ΄ λλ€.
public class Child extends Parent{...}
1. μ¬λ¬κ°μ λΆλͺ¨ ν΄λμ€λ₯Ό μμ ν μ μλ€
2. private μ κ·Όμ κ°λ νλμ λ©μλλ μμ λμμμ μ μΈ, default μμλ κ°μ package λ΄μμλ§ μμ κ°λ₯
public class parent{
public String a;
public String b;
}
public class child extends parent{
public String c;
public child(String a, String b, String c){
this.a = a; // parent field a
this.b = b; // parent field b
this.c = c; // child field c
}
2. λΆλͺ¨ μμ±μ, method νΈμΆ
λΆλͺ¨μ κΈ°λ³Έ μμ±μκ° μ‘΄μ¬ν΄μΌμ§ νΈμΆμ΄ κ°λ₯νλ€.
super(); // λΆλͺ¨μ κΈ°λ³Έ μμ±μ νΈμΆ
super();λ λΆλͺ¨μ κΈ°λ³Έ μμ±μλ₯Ό νΈμΆνλ€.
public class parent{
public String a;
public String b;
public parent(String a, String b){
this.a = a;
this.b = b;
}
public void plus(int a){
a++;
}
}
public class child extends parent{
public String c;
public child(String a, String b, String c){
super(a,b);
this.c = c; // child field c
}
@Override
public void plus(int a){
super.plus(a); // method μ¬μ μ
a+=2;
}
3. λ©μλ μ¬μ μ (@Override)
: μμλ μΌλΆ λ©μλλ μμ ν΄λμ€μμ λ€μ μμ νμ¬ μ¬μ©ν΄μΌ νλ€.
1. λΆλͺ¨ λ©μλμ λμΌν μκ·Έλμ²(return, parameter variable, method name)μ κ°μ ΈμΌ νλ€.
2. μ κ·Όμ νμ λ κ°νκ² μ¬μ μ λΆκ°λ₯νλ€. (publicμ΄λΌλ©΄ protected, default, private λ‘ μ¬μ μλ λΆκ°λ₯)
3. μλ‘μ΄ μμΈ (Exception)λ₯Ό throws ν μ μλ€.
public class parent{
public void plus(int a){
a++;}
}
public class child extends parent{
@Override
public void plus(int a){
a=a+2;}
}
4. final ν΄λμ€μ final λ©μλ
- final class
: ν΄λμ€ μ μΈ ν λ final ν€μλλ₯Ό class μμ λΆμ΄λ©΄ μ΅μ’ μ μΈ class λ―λ‘ μμν μ μλ ν΄λμ€
public final class ClassName{...}
- final method
: μ΅μ’ μ μΈ λ©μλμ΄λ―λ‘ μ¬μ μ ν μ μλ λ©μλ, λΆλͺ¨ classμμ μ μΈλ final method λ μμ ν¬λμ€μμ μ¬μ μ λΆκ°λ₯
public final void methodName(){...}
5. Protected μ κ·Ό μ νμ
: κ°μ package λ΄μμλ μμ ν΄λμ€λ§ μ κ·Όμ΄ κ°λ₯νλ€.
λ€λ₯Έ packageμμλ μμ±μλ₯Ό μ°μ°μλ₯Ό ν΅ν΄μ μ§μ νΈμΆν μ μκ³ , μμ μμ±μμμ super() λ‘ νΈμΆμ΄ κ°λ₯νλ€.
// child μ parent λ μλ‘ λ€λ₯Έ package
public class Child extends Parent{
public void method(){
// Parent parent = new Parent(); μ€λ₯ λ°μ
super.method(); // superλ‘ μ¬μ©
}
[μΆμ²] νΌκ³΅μλ° p. 310 ~ p. 331