<aside> π‘
μΆμ ν΄λμ€μ μΆμ λ©μλλ₯Ό μ μν λ μ¬μ©νλ μλ° ν€μλ
</aside>
μΆμ ν΄λμ€, μ§μ κ°μ²΄ν λ μ μλ ν΄λμ€
abstract class Parent{
public void money(){
System.out.println("μνλΉ");
}
}
class Child extends Parent{
public Child(){
System.out.println("Child);
}
}
public class TestAbstract(){
public static void main(){
//Parent p = new Parent(); //abstract class μ΄λ―λ‘ κ°μ²΄ μμ± λΆκ°
Child c = new Child();
c.money();
}
}
Child ν΄λμ€μ λΆλͺ¨ ν΄λμ€ Parentλ abstract ν΄λμ€μ΄λ―λ‘ μ§μ κ°μ²΄λ₯Ό μμ±ν μ μκ³ , μμμκ² μμνμ¬ μμ ν΄λμ€μ κ°μ²΄λ₯Ό μμ±ν΄μΌ νλ€.
μΆμ λ©μλ, ꡬνλΆ μμ΄ μ μΈλ λ©μλ
abstract Methodλ μμν΄λμ€μκ² methodμ ꡬνμ κ°μ νλ€.
abstract Methodλ abstract Classμμλ§ μμ±ν μ μλ€.
μμ ν΄λμ€λ abstract Methodλ₯Ό λ°λμ ꡬνν΄μΌνλ€(Override)
ꡬννμ§ μλλ€λ©΄ μμ ν΄λμ€ λν abstract classκ° λμ΄μΌ νλ€.
abstract class Parent{
public void eat() {
System.out.println("λ¨Ήλ€");
}
public void sleep() {
System.out.println("μλ€");
}
// μμμκ² κ΅¬νμ κ°μ => νμ€ν
public abstract void study(String subject);
}
class Child1{
@Override//λΆλͺ¨ ν΄λμ€μ abstract methodλ₯Ό μ€λ²λΌμ΄λ©
public void study(String subject){
System.out.println("Child1 " + subject + " 곡λΆνλ€");
}
}
abstract class Child2(){ //abstract methodλ₯Ό ꡬννμ§ μμμ abstract classμ΄λ€.
}