π μΆμν΄λμ€ : λΆλͺ¨ ν΄λμ€λ μ 곡νμ§λ§, μ€μ μμ±λλ©΄ μ λλ ν΄λμ€
π μΈν°νμ΄μ€ : μμ μΆμ ν΄λμ€λ‘, μ€ν λ‘μ§μ μ ν κ°μ§κ³ μμ§ μμ λͺ¨λ λ©μλκ° μΆμ λ©μλμΈ μΆμ ν΄λμ€
μΆμν΄λμ€ μ μΈλ²
abstract class abstractClass {...}
: ν΄λμ€λ₯Ό μ μΈν λ μμ μΆμμ΄λΌλ μλ―Έμ abstract ν€μλλ₯Ό λΆμ¬μ£Όλ©΄ λλ€.
μΆμν΄λμ€ νΉμ§
- μ§μ μΈμ€ν΄μ€λ₯Ό μμ±νμ§ λͺ»νλ€.
- μΆμ λ©μλκ° νλλΌλ μλ ν΄λμ€λ μΆμ ν΄λμ€λ‘ μ μΈν΄μΌ νλ€.
μΆμ λ©μλ μ μΈλ²
public abstract void abstractMethod();
: λ©μλ μμ μΆμμ΄λΌλ μλ―Έμ abstract ν€μλλ₯Ό λΆμ¬μ£Όλ©΄ λλ€.
μΆμ λ©μλ νΉμ§
- λ°λ λΆλΆμ΄ μλ€.
- μμλ°λ μμ ν΄λμ€κ° λ°λμ μ€λ²λΌμ΄λ© ν΄μ μ¬μ©ν΄μΌ νλ€.
- μ€λ²λΌμ΄λ© μνλ©΄ μ€λ₯ λ°μ
π μΆμ ν΄λμ€, λ©μλ μμ μ½λ
// μΆμ ν΄λμ€ μ μ
abstract class Animal {
// μΆμ λ©μλ μ μ - λ°λ μ‘΄μ¬X
public abstract void sound();
//μΌλ° λ©μλ : λͺ¨λ μμ ν΄λμ€μμ λμΌνκ² μ¬μ© κ°λ₯
public void sleep() {
System.out.println("Animal Sleep");
}
}
// ꡬ체 ν΄λμ€: Animalμ μμλ°μ μΆμ λ©μλ ꡬν
class Dog extends Animal {
@Override // μμ ν΄λμ€μμ λΆλͺ¨μ μΆμλ©μλ μ¬μ μ
public void sound() {
System.out.println("Bark");
}
}
// ꡬ체 ν΄λμ€: Animalμ μμλ°μ μΆμ λ©μλ ꡬν
class Cat extends Animal {
@Override
public void sound() {
System.out.println("Meow");
}
}
// λ©μΈ ν΄λμ€
public class Main {
public static void main(String[] args) {
Animal dog = new Dog();
dog.sound(); // μΆλ ₯: Bark
Animal cat = new Cat();
cat.sound(); // μΆλ ₯: Meow
cat.sleep(); // μΆλ ₯: Animal Sleep
}
}
π μμ μΆμ ν΄λμ€ : λͺ¨λ λ©μλκ° μΆμ λ©μλμΈ μΆμ ν΄λμ€
- μ½λλ₯Ό μ€νν λ°λ λΆλΆμ΄ μ ν μλ€. (μ€νλ‘μ§ μ‘΄μ¬ x)
- λ€νμ±μ μν λΆλͺ¨νμ μΌλ‘μ¨ κ»λ°κΈ° μν λ§ μ 곡
- μΈμ€ν΄μ€λ₯Ό μμ±ν μ μλ€.
- μμμ λͺ¨λ λ©μλλ₯Ό μ€λ²λΌμ΄λ© ν΄μΌ νλ€.
π μμ μΆμ ν΄λμ€ μμ μ½λ
public abstract class AbstractAnimal {
public abstract void sound();
public abstract void move();
}
π μΈν°νμ΄μ€ : μλ°μμ μμ μΆμ ν΄λμ€λ₯Ό λ νΈλ¦¬νκ² μ¬μ©ν μ μλλ‘ μ 곡ν κ°λ
- μΈν°νμ΄μ€μ λ©μλλ λͺ¨λ public, abstractμ΄λ€.
- λ©μλμ oublic abstractλ₯Ό μλ΅ν μ μκ³ , μλ΅μ΄ κΆμ₯λλ€.
- λ€μ€ ꡬν(λ€μ€ μμ)μ μ§μνλ€.
- μΈν°νμ΄μ€κ° λͺ¨λ μΆμ λ©μλλ‘ μ΄λ£¨μ΄μ Έ μκΈ° λλ¬Έμ ꡬνμ μμ ν΄λμ€μμ ν΄μΌ νλ―λ‘ λ€μ΄μλͺ¬λ λ¬Έμ κ° λ°μνμ§ μλλ€.
- ꡬνμ νλλ§ νλ©΄ λλ€.
μΈν°νμ΄μ€ μ μΈλ²
: classκ° μλλΌ interface ν€μλλ₯Ό μ¬μ©νλ©΄ λλ€.
//classκ° μλ interface ν€μλλ₯Ό μ¬μ©νμ¬ μ μΈ
public interface InterfaceAnimal {
void sound(); // puiblic abstract μλ΅λ νν
void move();
}
μΈν°νμ΄μ€μ λ©€λ² λ³μ
: μΈν°νμ΄μ€μμ λ©€λ² λ³μλ public, static, finalμ΄ λͺ¨λ ν¬ν¨λμλ€κ³ κ°μ£Όλλ€.
public interface InterfaceMath {
double PI = 3.14; //public static final double PI = 3.14
}
- final μ¬μ©μΌλ‘, κ³ μΉ μ μλ μμ
βοΈ μμκ³Ό ꡬν
- μμ : κΈ°μ‘΄ ν΄λμ€λ₯Ό κΈ°λ°μΌλ‘ μλ‘μ΄ ν΄λμ€λ₯Ό μ μνλ κ².
- ꡬν : μΈν°νμ΄μ€λ₯Ό κΈ°λ°μΌλ‘ ν΄λμ€κ° νΉμ λ©μλλ₯Ό ꡬννλ κ²μΌλ‘, ν΄λμ€μ λ¬λ¦¬ μ€μ ꡬνμ ꡬνν΄λμ€μμ μ΄λ£¨μ΄μ§κΈ°μ λΆλͺ¨μ μΈν°νμ΄μ€ κΈ°λ₯μ μμμ΄ μμλ°μ λλ μΈν°νμ΄μ€λ₯Ό ꡬννλ€κ³ νννλ€.
βοΈ μμκ³Ό ꡬνμ λμμ νλ κ²½μ°
: extendsλ₯Ό ν΅ν μμμ νλλ§ ν μ μκ³ , implementλ₯Ό ν΅ν μΈν°νμ΄μ€λ λ€μ€ ꡬν κ°λ₯.
- extendsκ° λ¨Όμ λμμΌ νλ€.
- λ€μ€ ꡬνμ κ²½μ° " , " λ₯Ό μ΄μ©ν΄μ ꡬλΆ
public class Bird extends Animal implements Dog, Cat { ... }
'Language > JAVA' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[JAVA] λ©λͺ¨λ¦¬ μμ (0) | 2024.08.25 |
---|---|
[JAVA] μ€λ λ(Thread) μλ―Έμ μ¬μ©λ² (5) | 2024.08.24 |
[JAVA] staticμ μλ―Έμ μ¬μ©λ² (0) | 2024.08.19 |
[JAVA] κ°μ²΄(Object)λ? (0) | 2024.08.16 |
[JAVA] κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°μ 4κ°μ§ νΉμ§ - μΊ‘μν, μμμ±, λ€νμ±, μΆμν (1) | 2024.08.16 |