상속으로 코드 중앙화

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

Sani Yusuf

Lead Software Engineering Content Developer

여러 클래스 다루기

  // Toyota class
  class Toyota {
      public String model;
      public String color;
      public String licensePlate;  
  }
  // Honda class
  class Honda {
      public String model;
      public String color;
      public String licensePlate;       
  }
  // Mercedes class
  class Mercedes {
      public String model;
      public String color;
      public String licensePlate;        
  }
  • 클래스 작업 시 중복이 자주 발생합니다
Java로 배우는 객체 지향 프로그래밍 입문

상속의 장점

  • 상속은 중복 코드를 해결합니다
  • 모든 공통 코드를 한 곳에 둘 수 있습니다
  • 이후 클래스는 extends로 상속합니다
  // Car class
  class Car {
     // All public properties 
     // are inherited
     public String model;
     public String color;
     public String licensePlate;  
 }

  // Toyota inheriting from Car class
  class Toyota extends Car {

  }
  // Honda inheriting from Car class
  class Honda extends Car {

  }
  // Mercedes inheriting from Car class
  class Mercedes extends Car {

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

베이스 클래스 소개

  • 베이스 클래스는 공통 코드를 담는 클래스입니다
  • Car 클래스는 베이스 클래스 예시입니다

  class Car {
     public String model;
     public String color;
     public String licensePlate;  
 }



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

서브클래스로 상속하기

  • 서브클래스는 베이스 클래스를 상속하는 클래스입니다
  • Toyota 클래스는 서브클래스 예시입니다
  • 서브클래스는 베이스 클래스의 모든 public 속성과 메서드를 상속합니다
  • super()는 베이스 클래스의 생성자를 호출합니다
  // Car Base Class
  class Car {
     public String model;
     public String color;
     public String licensePlate;  
 }

 // Toyota subclass
  class Toyota extends Car {


// Toyota constructor public Toyota(){ // super() calls // baseclass constructor (Car) super(); } }
Java로 배우는 객체 지향 프로그래밍 입문

상속 인스턴스 만들기

  • 베이스 클래스의 속성은 객체 인스턴스에서 사용할 수 있습니다

  // Car class  
  class Car {
    public String color;   

    // Car constructor
    public Car(String color){
      this.color = color;
    }    
  }




  // Toyota subclass
  class Toyota extends Car {
     public Toyota(){
       super();
     }
  }
  // Main class 
  public class Main {
    public static void main(String[] args) {
        Toyota myToyota = new Toyota("Brown");
        // "color" property inherited from "Car"
        System.out.println(
          myToyota.color); // Brown
    }
  }
Java로 배우는 객체 지향 프로그래밍 입문

연습해 봅시다!

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

Preparing Video For Download...