2. μΆμ ν΄λμ€μ μΈν°νμ΄μ€
μΆμ ν΄λμ€
μΆμ λ©μλ
- μΆμ λ©μλ μ μΈ
abstract λ°ννμ
λ©μλμ΄λ¦();
- λ©μλ 본체λ₯Ό μμ±νμ§ λͺ»ν λ©μλ
- 무μμ ν μ§λ μ μΈν μ μμ§λ§, μ΄λ»κ² ν μ§λ μ μν μ μμ -> μ μΈλΆλ§μ΄ μ‘΄μ¬, ꡬνλΆλ μμ±λμ΄ μμ§ μμ
- μ¬μ© λͺ©μ : μΆμ λ©μλκ° ν¬ν¨λ ν΄λμ€λ₯Ό μμλ°λ μμ ν΄λμ€κ° λ°λμ μΆμ λ©μλλ₯Ό ꡬννλλ‘ νκΈ° μν¨
μΆμ ν΄λμ€
- μΆμ ν΄λμ€ μ μΈ
abstract class ν΄λμ€μ΄λ¦ {
//νλ
//μμ±μ
//λ©μλ
}
- λ³΄ν΅ νλ μ΄μμ μΆμ λ©μλλ₯Ό ν¬ν¨νμ§λ§ μμ μλ μμ
- μ£Όλ‘ μμ κ³μΈ΅μμ μμ λ©€λ²μ μ΄λ¦μ ν΅μΌνκΈ° μνμ¬ μ¬μ©ν¨
- μΆμ ν΄λμ€λ λμμ΄ μ μλμ΄ μμ§ μμ μΆμ λ©μλλ₯Ό ν¬ν¨νκ³ μμΌλ―λ‘, μΈμ€ν΄μ€λ₯Ό μμ±ν μ μμ
-> μΆμ ν΄λμ€λ μμμ ν΅ν΄ μμ ν΄λμ€λ₯Ό λ§λ€κ³ , λ§λ μμ ν΄λμ€μμ
μΆμ ν΄λμ€μ λͺ¨λ μΆμ λ©μλλ₯Ό μ€λ²λΌμ΄λ©νκ³ λμμΌ λΉλ‘μ μμ ν΄λμ€μ μΈμ€ν΄μ€λ₯Ό μμ± κ°λ₯
μμ
- μΆμ λ©μλλ₯Ό ν¬ν¨ν μΆμ ν΄λμ€
abstract class shape{
double pi = 3.14;
abstract void draw();
public double findArea() {
return 0.0;
}
}
- μΆμ ν΄λμ€μ μμ ν΄λμ€
class Circle extends shape{
int radius;
public Circle(int radius){
this.radius = radius;
}
//λΆλͺ¨ ν΄λμ€μμ μΆμ λ©μλλ‘ μ μΈνμΌλ―λ‘ μμ ν΄λμ€μμ λ°λμ ꡬνν΄μΌ νλ€.
public void draw(){
System.out.println("μμ 그리λ€.");
}
public double findArea(){ //λΆλͺ¨ ν΄λμ€μ λ©μλλ₯Ό μ€λ²λΌμ΄λ© νλ€.
return pi*radius*radius;
}
}
μ 리
- μΆμ ν΄λμ€λ μΌλ°μ μΌλ‘ μΆμ λ©μλλ₯Ό ν¬ν¨νκ³ μλ ν΄λμ€
- μΆμ λ©μλλ₯Ό μ μΈνμ¬ μμμ ν΅ν΄μ νμ ν΄λμ€μμ ꡬνμ νλλ‘ κ°μ ν¨
- κ°μ²΄(μΈμ€ν΄μ€)λ₯Ό μμ±ν μ μμ
- μ΄μΈμλ μΌλ° ν΄λμ€μ λ€λ₯΄μ§ μμ
-> μΆμ ν΄λμ€ : λ―Έμμ± μ€κ³λ
μΆμ ν΄λμ€λ ,, 곡ν΅μ μ μμ§λ§ μ΄λ₯Ό μν΄μ μ νν ꡬννκΈ° νλ€λ,
μ¦, λλ¬Όμ μ΄λ€. λΌλ 곡ν΅μ μ΄ μμ§λ§ κ°κ°μ λλ¬Όλ€μ΄ μΌμΉμ΄λΌκ³ μΈμ§ λ©λ©μ΄λΌκ³ μΈμ§ ꡬννκΈ°λ νλ€λ
νμ ν΄λμ€μμ μ΄λ₯Ό ꡬννλλ‘ κ°μ νλ λ―Έμμ± μ€κ³λ μ λλ€.
μΈν°νμ΄μ€
- κ°μ²΄λ₯Ό μ΄λ»κ² ꡬμ±ν΄μΌ νλμ§ μ 리ν κΈ°λ³Έ μ€κ³λ
- κ°μ²΄κ° μΈν°νμ΄μ€λ₯Ό μ¬μ©νλ©΄, μΈν°νμ΄μ€ λ©μλ(μΆμ λ©μλ) ꡬνμ νλλ‘ κ°μ ν¨
- μμμ μΆμ λ©μλμ μ§ν©μ΄μμ§λ§,
νΈμμ±μ μν java8λΆν° Default, Static, Private λ©μλ λ±μ μ§μν¨
μΈν°νμ΄μ€ ꡬ쑰
- interfaceμ μ κ·Ό μ§μ μλ publicλ§ κ°λ₯ -> interfaceλ classμ μ€κ³λμ΄κΈ° λλ¬Έμ μ μ΄μ μ‘΄μ¬ λͺ©μ μ΄ κ³΅κ°μ΄κΈ° λλ¬Έ
- interfaceλ μ κ·Ό μ§μ μλ‘ publicμ μ¬μ©νλ©΄ λ€λ₯Έ ν¨ν€μ§μμλ μ¬μ© κ°λ₯, publicμ μ¬μ©νμ§ μμΌλ©΄ interfaceκ° μμΉν ν΄λΉ ν¨ν€κΈ° λ΄μμλ§ μ¬μ© κ°λ₯
- interfaceλ κ°μ²΄λ‘ μμ±ν μ μκΈ° λλ¬Έμ μμ±μλ₯Ό κ°μ§ μ μμ
- μ»΄νμΌ μ μμλ public static finalμ, μΆμ λ©μλλ public abstractμ μλμΌλ‘ μμ±ν΄μ£ΌκΈ° λλ¬Έμ μλ΅ κ°λ₯
μΈν°νμ΄μ€μ μ₯μ
- μΈν°νμ΄μ€λ§ μ€μνλ©΄ ν΅ν©μ μ κ²½ μ°μ§ μκ³ λ€μν ννλ‘ μλ‘μ΄ ν΄λμ€λ₯Ό κ°λ° κ°λ₯
- μλ° μΈμ΄λ ν΄λμ€μ λ€μ€ μμμ μ§μνμ§ μμ§λ§, μΈν°νμ΄μ€λ‘ λ€μ€ μμ ν¨κ³Όλ₯Ό κ°μ μ μΌλ‘ μ»μ μ μμ
μΈν°νμ΄μ€μ μΆμ ν΄λμ€μ μ°¨μ΄
곡ν΅μ
- μ μΈλΆλ§ μ‘΄μ¬νκ³ κ΅¬νλΆλ μλ μΆμ λ©μλλ₯Ό κ°μ§
- μμ ν΄λμ€μμ 무μμΈκ°λ₯Ό λ°λμ ꡬννλλ‘ μμν΄μΌ ν λ μ¬μ©
μ°¨μ΄μ
- μΆμ ν΄λμ€μ λͺ©μ μ μμμ λ°μ κΈ°λ₯μ νμ₯μν€λ κ²
- μΈν°νμ΄μ€μ λͺ©μ μ ꡬννλ λͺ¨λ ν΄λμ€μ λν΄ νΉμ λ©μλκ° λ°λμ μ‘΄μ¬νλλ‘ κ°μ νλ κ²
μΈν°νμ΄μ€ μμ
//μΈν°νμ΄μ€λ₯Ό μμνλ €λ©΄
interface μμμΈν°νμ΄μ€ extends λΆλͺ¨μΈν°νμ΄μ€{
}
//μΈν°νμ΄μ€λ₯Ό ꡬννλ €λ©΄
class μμν΄λμ€ implements λΆλͺ¨μΈν°νμ΄μ€{
}
//μμν μΈν°νμ΄μ€κ° μ¬λ¬ κ°λΌλ©΄ μΌν(,)λ‘ μ°κ²°
//μΈν°νμ΄μ€λ λ€μ€ μμν μ μλ€.
//ν΄λμ€λ λ€μ€ μμν μ μλ€ .
μΈν°νμ΄μ€ νμ
- μΈν°νμ΄μ€λ ν΄λμ€μ²λΌ νλμ νμ μ΄λ―λ‘ λ³μλ₯Ό μΈν°νμ΄μ€ νμ μΌλ‘ μ μΈ κ°λ₯
- μΈν°νμ΄μ€μ ꡬν ν΄λμ€λ κ·Έ μΈν°νμ΄μ€μ μμ νμ
- μΈν°νμ΄μ€ νμ λ³μκ° κ΅¬ν κ°μ²΄λ₯Ό μ°Έμ‘°νλ€λ©΄ κ°μ νμ λ³ν κ°λ₯
'π¦λ©μμ΄ μ¬μμ²λΌ 11κΈ° > λ°±μλ μ κΈ°μΈμ μΆκ°νμ΅' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[SESSION10] - Database TIL (0) | 2023.04.30 |
---|---|
[TIL] SESSION 6 _ JPA (0) | 2023.03.31 |
[TIL] μΉκ³Ό μλ², Springboot μΉκ°λ° κΈ°μ΄ (0) | 2023.03.27 |
[TIL] μλ°μ μμμ λνμ¬ (0) | 2023.03.26 |
[TIL]JAVA_ Array, ArrayList, HashMap λ©μλ λ μμ보기(μμ , μμ ) (0) | 2023.03.21 |