상세 컨텐츠

λ³Έλ¬Έ 제λͺ©

[μžλ°”] 좔상 ν΄λž˜μŠ€μ™€ μΈν„°νŽ˜μ΄μŠ€μ— λŒ€ν•΄ μ„€λͺ…ν•΄μ£Όμ„Έμš”

😎 지식 in Action/Java & Kotlin

by :ν•΄ν”Όλž˜λΉ—πŸΎ 2025. 3. 27. 15:26

λ³Έλ¬Έ

[ 좔상 클래슀 ] 

좔상 ν΄λž˜μŠ€λŠ” 좔상 λ©”μ†Œλ“œκ°€ ν•˜λ‚˜λΌλ„ μ‘΄μž¬ν•˜λŠ” 클래슀둜 extends ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•˜λ©° 닀쀑 상속이 λΆˆκ°€λŠ₯ν•˜λ‹€ 

상속을 ν†΅ν•œ κΈ°λŠ₯ ν™•μž₯ λ˜λŠ” 곡톡 κΈ°λŠ₯을 ν•˜μœ„ ν΄λž˜μŠ€μ—μ„œ μž¬μ‚¬μš©ν•  λ•Œ μœ μš©ν•˜λ‹€ 

기본적인 λ™μž‘μ„ μ œκ³΅ν•˜λ©΄μ„œ μ„ΈλΆ€ λ™μž‘μ€ ν•˜μœ„ ν΄λž˜μŠ€κ°€ μ •μ˜ν•˜λ„λ‘ κ°•μ œν•œλ‹€ 

abstract class Vehicle {
    void startEngine() {
        System.out.println("엔진을 μΌ­λ‹ˆλ‹€");
    }

    abstract void move(); // 이동 방법은 νƒˆκ²ƒλ§ˆλ‹€ λ‹€λ₯΄λ‹ˆ 좔상 λ©”μ†Œλ“œλ‘œ μ •μ˜
}

class Car extends Vehicle {
    @Override
    void move() {
        System.out.println("λ„λ‘œλ₯Ό 따라 λ‹¬λ¦½λ‹ˆλ‹€");
    }
}

class Boat extends Vehicle {
    @Override
    void move() {
        System.out.println("물을 따라 λ– λ‹€λ‹™λ‹ˆλ‹€");
    }
}

 

 

[ μΈν„°νŽ˜μ΄μŠ€ ] 

μΈν„°νŽ˜μ΄μŠ€λŠ” 클래슀 κ°„ κ³΅ν†΅λœ λ™μž‘μ„ μ •μ˜ν•˜κ³  싢을 λ•Œ μ‚¬μš©ν•˜λ©° implements ν‚€μ›Œλ“œλ‘œ 닀쀑 상속이 κ°€λŠ₯ν•˜λ‹€ 

κΈ°λŠ₯을 μ•½μ†ν•˜κ³  κ°•μ œν•˜λŠ” μš©λ„μ— μ ν•©ν•˜λ‹€.

interface Workable {
    void work(); // μΌν•˜λŠ” 방식은 ν΄λž˜μŠ€λ§ˆλ‹€ λ‹€λ₯΄κ²Œ μ •μ˜
}

class Developer implements Workable {
    @Override
    public void work() {
        System.out.println("μ½”λ“œλ₯Ό μž‘μ„±ν•©λ‹ˆλ‹€");
    }
}

class Designer implements Workable {
    @Override
    public void work() {
        System.out.println("λ””μžμΈμ„ ν•©λ‹ˆλ‹€");
    }
}

 

Thinkable, Reportable λ“± μ—¬λŸ¬ μΈν„°νŽ˜μ΄μŠ€λ₯Ό κ΅¬ν˜„ν•  수 μžˆλ‹€ 

728x90

κ΄€λ ¨κΈ€ 더보기