π‘ Spring FrameWork νμ κ°λ
μ 체μ μΌλ‘λ λμΌνλ©΄μ λΆλΆμ μΌλ‘λ λ€λ₯Έ ꡬ문μΌλ‘ ꡬμ±λ λ©μλμ μ½λ μ€λ³΅μ μ΅μν ν λ μ μ©νλ€.
λ³μ(name)λ ν¨μ(doSomething( )) λ¨μμ κ³΅ν΅ λΆλΆμ μμμ ν΅ν΄ μ€λ³΅ μ κ±°κ° κ°λ₯νλ€. μ΄ λ ν¨μ λ΄μ μ½λλ€μ΄ μλ‘ λ€λ₯Έ κ²½μ°μ λν΄μλ λΆλͺ¨ ν΄λμ€μμ abstract μ²λ¦¬λ₯Ό ν¨μΌλ‘μ¨ Person κ°μ²΄μ ꡬ쑰 μ체λ μ μ§νλ©΄μ κ°λ³ κ°μ²΄λ§λ€ μ ν©ν ν¨μ λ΄λΆ(doSomething( ))λ₯Ό ꡬνν μ μλ€.
μ¬κΈ°μ doSomething( ) λ΄λΆμμ λͺλͺμ κ³΅ν΅ λΆλΆμ μ²λ¦¬ν¨μΌλ‘μ¨ κ³΅ν΅ κ΅¬μ‘°λ₯Ό λ§λ€μ΄λΈ κ²μ΄ ν
νλ¦Ώ λ©μλ ν¨ν΄μ΄λ€.
π μ΄λ€ νλμ ν
νλ¦Ώ λ©μλ μμμ μΆμ λ©μλλ₯Ό νΈμΆνκ³ , μΆμ λ©μλμ ꡬ체μ μΈ
λμμ μμν΄λμ€μμ ꡬ체μ μΌλ‘ ꡬνν μ μλλ‘ νλ€.
μμμ λ³μμ ν¨μ λ¨μλ₯Ό λΆλͺ¨λ‘ λ¬Άμ΄λ΄λ λ°©λ²μ΄λΌλ©΄, ν νλ¦Ώ λ©μλ ν¨ν΄μ μ½λ λ¨μμ κ³΅ν΅ κ΅¬μ‘°λ₯Ό νλλ‘ λ¬Άμ΄λ΄λ λ°©λ²μ΄λ€.
λΆλͺ¨ ν΄λμ€μμ κ³΅ν΅ λ³μμ ν¨μλ‘ Person ꡬ쑰λ₯Ό λ§λ λ€.
public abstract class Person {
private String name;
// μμ ν΄λμ€μμ κ°λ³ κ°μ²΄μ λ§κ² ꡬνν λΆλΆ
public abstract void doSomething();
// ν
νλ¦Ώ λ©μλ μμμ μΆμ λ©μλλ₯Ό νΈμΆ
// λμ λ°μΈλ©μ μν΄ μμ ν΄λμ€μμ ꡬ체μ μΌλ‘ ꡬνν doSomething()μ΄ νΈμΆ
public void daily() {
System.out.println("μ
μ€μ²΄ν¬νλ€.");
doSomething();
System.out.println("ν΄μ€μ²΄ν¬νλ€.");
}
}
μμν΄λμ€1. Employee
public class Employee extends Person{
@Override
public void doSomething() {
// TODO Auto-generated method stub
System.out.println("μμ κ°μ΄ μΌμ νλ€.");
System.out.println("μ°μ€ν 리λ₯Ό λ¨Ήλλ€.");
}
}
μμν΄λμ€2. Student
public class Student extends Person{
@Override
public void doSomething() {
// TODO Auto-generated method stub
System.out.println("곡λΆνλ€.");
System.out.println("κΈμμ λ¨Ήλλ€.");
}
}