κ°λ μ 리 κΈ.
μ μ 리λ κΈμ΄ μμ΄ κ³΅μ ν΄λ³Έλ€.
https://limkydev.tistory.com/197
μΈν°νμ΄μ€λ 무μμΈκ°?
κ·Ήλ¨μ μΌλ‘ λμΌν λͺ©μ νμ λμΌν κΈ°λ₯μ μννκ²λ κ°μ νλ κ²μ΄ λ°λ‘ μΈν°νμ΄μ€μ μν μ΄μ κ°λ μ΄λ€.
μ‘°κΈ λ μ μνκ² λ§νλ©΄,
μλ°μ λ€νμ±μ κ·Ήλννμ¬ κ°λ°μ½λ μμ μ μ€μ΄κ³ νλ‘κ·Έλ¨ μ μ§λ³΄μμ±μ λμ΄κΈ° μν΄ μΈν°νμ΄μ€λ₯Ό μ¬μ©νλ€.
μ μ΄κ² 무μ¨λ§μΈκ°?
μμμΌνλ κ°λ
μμ : μΈν°νμ΄μ€μμ κ°μ μ ν΄μ€ν λ ν¨λΆλ‘ λ°κΎΈμ§ λ§κ³ μ 곡ν΄μ£Όλ κ°λ§ μ°Έμ‘°ν΄λΌ (μ λμ )
μΆμλ©μλ : κ°μ΄λλ§ μ€ν λ μΆμλ©μλλ₯Ό μ€λ²λΌμ΄ν ν΄μ μ¬κ΅¬νν΄λΌ. (κ°μ μ )
λν΄νΈλ©μλ : μΈν°νμ΄μ€μμ κΈ°λ³Έμ μΌλ‘ μ 곡ν΄μ£Όμ§λ§, λ§μ μλ€λ©΄ κ°μ ꡬνν΄μ μ¨λΌ. (μ νμ )
μ μ λ©μλ : μΈν°νμ΄μ€μμ μ 곡ν΄μ£Όλ κ²μΌλ‘ 무쑰건 μ¬μ© (μ λμ )
λ¬Έλ²
package μΈν°νμ΄μ€;
public class Car {
final String type = "μ κΈ°μ°¨";
int size = 3; // 1: small ~ 5: big
public abstract void start();
public void stop();
public default void music() {
System.out.println("listen the music");
}
}
λ¬Έλ²μ λ€μκ³Ό κ°λ€.
final μ΄λ?
κ°μ λ°κΏ μ μλ€λ κ²μ μλ―Ένλ€.
interface νΉμ±μ 2κ°μ§κ° μλ€.
1. λ³μλ₯Ό μ μΈν μ μλ€. μμλ₯Ό μ μΈν΄μΌ νλ€.(λΆλ³νλ κ°)
finalμ ν΅ν΄ μμλ₯Ό μ μΈνλ€.
finalμ μλ΅μ΄ κ°λ₯νλ€.
2. λ©μλ μ μΈ κ°λ₯νλ©°, μΆμ λ©μλλ§ μ μΈ κ°λ₯νλ€.
νμ§λ§ μ΅κ·Ό JAVA 8 μ΄ν μ κ·Έλ μ΄λμμ, μΆμ λ©μλλ₯Ό μ μΈν μΌλ° λ©μλλ ꡬνν μ μκ² λμλ€.
μ΄λ defaultλ₯Ό μ΄μ©νλ€.
μ¬κΈ°μ defaultλ μ κ·Όμ νμκ° μλλΌ μΈν°νμ΄μ€ λ΄λΆμμ λ°λ‘ μ‘΄μ¬νλ κ°μΌλ‘ μκ°νλ©΄ μ½λ€.
μΆμ λ©μλλ abstractλ₯Ό μ΄μ©ν΄μ λνλΈλ€. νμ§λ§ μλ΅μ΄ κ°λ₯ν΄μ μμ΄μ¬μ©ν΄λ μΆμ λ©μλλ‘ μ μλλ€.
(ex) void stop();
μμλλ©΄ μ’μ ν
package μΈν°νμ΄μ€;
public class bmw_320d implemnts car, vehicle{
public void x();
public void y();
}
μ¬κΈ°μ bmw_320d ν΄λμ€λ car μ vehicle μΈν°νμ΄μ€ 2κ°λ₯Ό μμλ°λλ€. μ¦, class μμλ 1κ°λ§ μμλ°μ μ μλ λ°λ©΄, μΈν°νμ΄μ€μ κ²½μ° μ¬λ¬ κ°λ₯Ό μμλ°μ μ μλ€.
νμ§λ§ μΆμ λ©μλλ νΉμ±μ μμ μ, κ° λ©μλλ€μ λν΄ μ¬μ μλ₯Ό ν΄μ€μΌ ν νμκ° μλ€.