โถ ์ถ์ ํด๋์ค ๊ตฌํํ๊ธฐ
์์ฑํด๋ณด๋ฉด ์ ๋ ๊ฒ ์ค๋ฅ๊ฐ ๋ฌ๋ค. ์ค๋ฅ์ ํด๊ฒฐ ๋ฐฉ๋ฒ์
์ด ๋ ์ค ํ๋์ธ๋ฐ, ์ฐ๋ฆฌ๋ 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();
}
}
'Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Java] ํ ํ๋ฆฟ ๋ฉ์๋ ์์ฉํ๊ธฐ (0) | 2021.02.20 |
---|---|
[Java] ํ ํ๋ฆฟ ๋ฉ์๋ (0) | 2021.02.20 |
[Java] ์ค์ต (0) | 2021.02.20 |
[Java] ๋ค์ด ์บ์คํ ๊ณผ instanceof (0) | 2021.02.20 |
[Java] ๋คํ์ฑ ํ์ฉํ๊ธฐ (0) | 2021.02.20 |
๋๊ธ