[Java] μΆμ ν΄λμ€
βΆ μΆμ ν΄λμ€ κ΅¬ννκΈ°
μμ±ν΄λ³΄λ©΄ μ λ κ² μ€λ₯κ° λ¬λ€. μ€λ₯μ ν΄κ²° λ°©λ²μ
μ΄ λ μ€ νλμΈλ°, μ°λ¦¬λ abstract μμ½μ΄λ₯Ό λ°°μ°κ³ μμΌλκΉ abstractλ₯Ό μ λ ₯ν΄λ³Έλ€.
μΆμ λ©μλκ° μν ν΄λμ€λ₯Ό μΆμ ν΄λμ€λ‘ μ μΈνμ§ μμκΈ° λλ¬Έμ μ€λ₯κ° λ°μνλ€.
μ€λ₯ ν΄κ²° !
β
β
βΆ μΆμ ν΄λμ€ μμ λ°κΈ°
μ€λ₯λ₯Ό ν΄κ²°νλ λ°©λ²
- μΆμ λ©μλλ₯Ό λͺ¨λ ꡬνν κ²
- DeskTopλ μΆμ ν΄λμ€λ‘ λ§λ€ κ²
β
μΆμ ν΄λμ€λ₯Ό μμλ°μ νμ ν΄λμ€λ ꡬνλμ§ μμ μΆμ λ©μλλ₯Ό λͺ¨λ ꡬνν΄μΌ ꡬ체μ μΈ ν΄λμ€κ° λλ€.
μ€λ₯ λΆλΆμ λ§μ°μ€λ₯Ό λκ³ Add unimplemented methods μ΅μ μ λλ¬μ λλ¨Έμ§ μ½λλ₯Ό μμ±ν΄λ³΄μ.
β
-4~12νμ μμ ν΄λμ€μΈ Computer ν΄λμ€μ ν¬ν¨λ μΆμ λ©μλμΈ display()μ typing()μ μ¬μ μνλ λΆλΆμ΄λ€. μ΄ λͺΈμ²΄ λΆλΆμ μνλ μ½λλ₯Ό ꡬννλ©΄ λλ€.
μ΄ ν΄λμ€μμλ μμλ°μ μΆμ λ©μλλ₯Ό λͺ¨λ ꡬννμ§ μκ³ display() νλλ§ κ΅¬ννλ€.
κ·Έλ¬λ―λ‘ NoteBook ν΄λμ€λ μΆμ λ©μλλ₯Ό νλ κ°μ§κ³ μκΈ° λλ¬Έμ μΆμ ν΄λμ€κ° λλ€.
-λͺ¨λ μΆμ λ©μλλ₯Ό ꡬνν ν΄λμ€μ abstract μμ½μ΄λ₯Ό μ¬μ©νμ§ μλλ€.
βΆ λͺ¨λ μΆμ λ©μλλ₯Ό ꡬνν ν΄λμ€μ abstract μμ½μ΄λ₯Ό μ¬μ©νλ€λ©΄?
μμ±ν΄μ μ¬μ©ν λͺ©μ μ΄ μλ μμλ§μ μν΄ λ§λ μΆμ ν΄λμ€λ©΄ new μμ½μ΄λ‘ μΈμ€ν΄μ€ μμ± μλ¨.
β
β
β
λ νΌμ μ½λ©) ν μ€νΈ ν΄λμ€μΈ CarTest.javaμ μΆλ ₯ νλ©΄κ³Ό κ°μ΄ μΆλ ₯λλλ‘ Car, Bus, AutoCar ν΄λμ€λ₯Ό μ§μ ꡬνν΄λ³΄λΌ.
<쑰건> Car ν΄λμ€ : run( ), refuel( ), stop( ) Bus ν΄λμ€ : takePassenger( ) AutoCar ν΄λμ€ : load( ) |
β
<κ³Όμ >
β
1. CarTest ν΄λμ€μ μ€λ₯κ° μλκ±Έ νμΈ.
package chapter9.step1;
public class CarTest {
public static void main(String[] args) {
Bus bus = new Bus();
AutoCar autoCar = new AutoCar();
bus.run();
autoCar.run();
bus.refuel();
autoCar.refuel();
bus.takePassenger();
autoCar.load();
bus.stop();
autoCar.stop();
}
}
2. Busμ μ€λ₯ λΆλΆμ λ§μ°μ€λ₯Ό λ보면 'Create class Bus' λΌκ³ λ¬λ€. λλ¬λ³΄μ
β
β
3. AutoCarλ Busμ λκ°μ΄ νλ€.
β
β
4. Car ν΄λμ€λ₯Ό λ§λ€μ΄μ Bus, AutoCar ν΄λμ€μ κ°κ° μμν΄μ€λ€
β
β
5. Car ν΄λμ€λ₯Ό μΆμ ν΄λμ€λ‘ λ§λ€κ³ μμ 쑰건μ²λΌ run( ), refuel( )μ μΆμ λ©μλλ‘ λ§λ€μ
package chapter9.step1;
public abstract class Car {
public abstract void run();
public abstract void refuel();
public void stop() {
System.out.println("μ°¨κ° λ©μΆ₯λλ€.");
}
}
6. Bus ν΄λμ€μ μΆμ λ©μλ λ΄μ©μ λ©κΎΈμ. (run( ), refuel( )μ μΆμ λ©μλ)
package chapter9.step1;
public class Bus extends Car{
public void takePassenger() {
System.out.println("μΉκ°μ λ²μ€μ νμλλ€.");
}
@Override
public void refuel() {
System.out.println("μ²μ° κ°μ€λ₯Ό μΆ©μ ν©λλ€.");
}
public void run() {
System.out.println("λ²μ€κ° λ¬λ¦½λλ€.");
}
}
7. AutoCar ν΄λμ€λ λκ°μ΄ λ΄μ©μ λ©κΎΈμ. (run( ), refuel( )μ μΆμ λ©μλ)
package chapter9.step1;
public class AutoCar extends Car{
public void load() {
System.out.println("μ§μ μ£μ΅λλ€.");
}
@Override
public void refuel() {
System.out.println("νλ°μ λ₯Ό μΆ©μ ν©λλ€.");
}
@Override
public void run() {
System.out.println("μ°¨κ° λ¬λ¦½λλ€.");
}
}
8. μ΄μ μ€λ₯κ° μμ΄μ§. μΆλ ₯ν΄λ³΄μ
package chapter9.step1;
public class CarTest {
public static void main(String[] args) {
Bus bus = new Bus();
AutoCar autoCar = new AutoCar();
bus.run();
autoCar.run();
bus.refuel();
autoCar.refuel();
bus.takePassenger();
autoCar.load();
bus.stop();
autoCar.stop();
}
}