βΆ μΆμ ν΄λμ€μ ν νλ¦Ώ λ©μλ
ν νλ¦Ώ λ©μλ : νμ΄ μλ λ©μλ(μ±κΈν€κ³Ό κ°μ λμμΈ ν¨ν΄)
νλ μμν¬μμ λ§μ΄ μ°μ
package template;
public abstract class Car {
public abstract void drive();
public abstract void stop();
public void startCar() {
System.out.println("μλμ μΌλλ€");
}
public void turnOff() {
System.out.println("μλμ λλλ€.");
}
final public void run() {
startCar();
drive();
stop();
turnOff();
}
}
package template;
public class AICar extends Car {
@Override
public void drive() {
System.out.println("μμ¨ μ£Όνν©λλ€");
System.out.println("μλμ°¨κ° μ€μ€λ‘ λ°©ν₯μ μ νν©λλ€.");
}
@Override
public void stop() {
System.out.println("μ€μ€λ‘ λ©μΆ₯λλ€.");
}
}
package template;
public class ManualCar extends Car {
@Override
public void drive() {
System.out.println("μ¬λμ΄ μ΄μ ν©λλ€");
System.out.println("μ¬λμ΄ νΈλ€μ μ‘°μν©λλ€");
}
@Override
public void stop() {
System.out.println("λΈλ μ΄ν¬λ‘ μ μ§ν©λλ€");
}
}
package template;
public class CarTest {
public static void main(String[] args) {
System.out.println("=== μμ¨μ£Όν νλ μλμ°¨ ===");
Car myCar = new AICar();
myCar.run();
System.out.println("=== μ¬λμ΄ μ΄μ νλ μλμ°¨ ===");
Car hisCar = new ManualCar();
hisCar.run();
}
}
βΆ ν νλ¦Ώ λ©μλμ μν
ν νλ¦Ώ λ©μλμ μν μ λ©μλ μ€ν μμμ μλ리μ€λ₯Ό μ μνλ κ².
β
β
β
λ νΌμ μ½λ©) λͺ¨λ μ°¨μ μμ΄νΌ κΈ°λ₯μ μΆκ°νλ €κ³ νλ€. μΆμ λ©μλλ₯Ό μ¬μ©νμ¬ μ°¨μ’ μ΄ μ¬λ¬ κ°μΌ λ κ° ν΄λμ€μ μμ΄νΌ κΈ°λ₯μ ꡬννλ€. wiper( ) μΆμ λ©μλλ₯Ό μΆκ°ν Car ν΄λμ€λ₯Ό λ€μ΄μ΄κ·Έλ¨μΌλ‘ κ·Έλ € 보면 λ€μκ³Ό κ°λ€.
ManualCarμ wiper( ) λ©μλλ₯Ό νΈμΆνλ©΄ 'μ¬λμ΄ λΉ λ₯΄κΈ°λ₯Ό μ‘°μ ν©λλ€.'λΌκ³ μΆλ ₯νκ³ , AICarμ wiper( ) λ©μλλ₯Ό νΈμΆνλ©΄ 'λΉλ λμ μμ λ°λΌ λΉ λ₯΄κΈ°κ° μλμΌλ‘ μ‘°μ λ©λλ€.' λΌκ³ μΆλ ₯νλλ‘ μμ μμ λ₯Ό μμ ν΄λ³΄λΌ.
<λ΄κ° ν κ²>
package template;
public abstract class Car {
public abstract void drive();
public abstract void stop();
public void startCar() {
System.out.println("μλμ μΌλλ€");
}
public void turnOff() {
System.out.println("μλμ λλλ€.");
}
public abstract void wiper();
final public void run() {
startCar();
drive();
wiper();
stop();
turnOff();
}
}
package template;
public class AICar extends Car {
@Override
public void drive() {
System.out.println("μμ¨ μ£Όνν©λλ€");
System.out.println("μλμ°¨κ° μ€μ€λ‘ λ°©ν₯μ μ νν©λλ€.");
}
@Override
public void stop() {
System.out.println("μ€μ€λ‘ λ©μΆ₯λλ€.");
}
@Override
public void wiper() {
System.out.println("λΉλ λμ μμ λ°λΌ λΉ λ₯΄κΈ°κ° μλμΌλ‘ μ‘°μ λ©λλ€.");
}
}
package template;
public class ManualCar extends Car {
@Override
public void drive() {
System.out.println("μ¬λμ΄ μ΄μ ν©λλ€");
System.out.println("μ¬λμ΄ νΈλ€μ μ‘°μν©λλ€");
}
@Override
public void stop() {
System.out.println("λΈλ μ΄ν¬λ‘ μ μ§ν©λλ€");
@Override
public void wiper() {
System.out.println("μ¬λμ΄ λΉ λ₯΄κΈ°λ₯Ό μ‘°μ ν©λλ€.");
}
}
<μ€ν κ²°κ³Ό>
β
'Java' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Java] final μμ½μ΄ (0) | 2021.02.20 |
---|---|
[Java] ν νλ¦Ώ λ©μλ μμ©νκΈ° (0) | 2021.02.20 |
[Java] μΆμ ν΄λμ€ (0) | 2021.02.20 |
[Java] μ€μ΅ (0) | 2021.02.20 |
[Java] λ€μ΄ μΊμ€ν κ³Ό instanceof (0) | 2021.02.20 |
λκΈ