다형성 소개

Java로 배우는 객체 지향 프로그래밍 입문

Sani Yusuf

Lead Software Engineering Content Developer

다형성 시연

  • 다형성은 객체지향 프로그래밍(OOP)에서 객체가 여러 형태로 동작하도록 하는 개념입니다
  • 클래스 상속 시연

  // 추상 Car 클래스
  abstract class Car {

    // 추상 drive 메서드
    abstract void drive(); 
    // 코드 구현 없음 

  }

  // Toyota 클래스는 Car를 상속
  class Toyota extends Car {  

  }
  // Tesla 클래스는 Car를 상속
  class Tesla extends Car {  

  }
  // Lamborghini 클래스는 Car를 상속
  class Lamborghini extends Car {          

  }
Java로 배우는 객체 지향 프로그래밍 입문

메서드 오버라이딩

  • @Override 키워드는 메서드의 사용자 정의 구현을 가능하게 합니다
  // 추상 Car 클래스
  abstract class Car {

    // 추상 drive 메서드
    abstract void drive(); 
    // 코드 구현 없음 

  }


 class Toyota extends Car {  
   @Override // 오버라이드에 사용되는 키워드
    void drive() {
      // Toyota 전용 구현 코드
    }  
 }
 class Tesla extends Car {   
   @Override
    void drive() {
      // Tesla 전용 구현 코드
    } 
 }
 class Lamborghini extends Car {  
   @Override
    void drive() {
      // Lamborghini 전용 구현 코드
    }   
 }
Java로 배우는 객체 지향 프로그래밍 입문

인터페이스 메서드 오버라이딩


  // ElectricCar 인터페이스
  interface ElectricCar {

    abstract void charge(); 
    // 코드 구현 없음 

  }


  • 인터페이스 메서드에는 @Override 사용을 권장합니다

  // Tesla 클래스가 
  // ElectricCar 인터페이스 구현
  class Tesla implements ElectricCar {

    // charge 메서드는 반드시 구현해야 함
    @Override
    void charge(){
      // Tesla 전용 charge 구현
      // 인터페이스로 선택적 상속
    }          
  }













Java로 배우는 객체 지향 프로그래밍 입문

메서드 오버로딩

  • 오버로딩은 같은 이름의 메서드에 서로 다른 구현을 허용합니다

  // Toyota 클래스 
  class Toyota {   

    void drive() {
      // drive 메서드 첫 번째 구현
    }

// 오버로딩된 drive 메서드 void drive(int topSpeed) { // 두 번째 구현 } }
Java로 배우는 객체 지향 프로그래밍 입문

생성자 오버로딩

  • 생성자는 같은 클래스에서 여러 개로 오버로딩할 수 있습니다
  // Honda 클래스
  class Honda {
    // 첫 번째 생성자
    public Honda(String color,
                 String model) {

    }

// 두 번째 생성자 public Honda(String color, String model, String licensePlate) { } }

  public class Main {  
    public static void main(
      String[] args) {

      // 첫 번째 생성자 사용
      Honda hondaOne = 
        new Honda("Red", "Accord");


// 두 번째 생성자 사용 Honda hondaTwo = new Honda("Red", "Civic", "FST-1977"); } }
Java로 배우는 객체 지향 프로그래밍 입문

연습해 봅시다!

Java로 배우는 객체 지향 프로그래밍 입문

Preparing Video For Download...