[Java] Section9 - 문제와 풀이

코드 속의 "진돌"·2024년 3월 10일
0
post-thumbnail

✅ 상속 관계 상품


🔔 문제 설명

쇼핑몰의 판매 상품을 만들어보자.



🔔 요구 사항

  • Book, Album, Movie 3가지 상품을 클래스로 만들어야 한다.
  • 코드 중복이 없게 상속 관계를 사용하자. 부모 클래스는 Item이라는 이름을 사용하면 된다.
  • 공통 속성 : name, price
    • Book : 저자(author), isbn(isbn)
    • Album : 아티스트(artist)
    • Movie : 감독(director), 배우(actor)



📚 예시 코드

package extends1.ex;

public class ShopMain {

  public static void main(String[] args) {
    Book book = new Book("JAVA", 10000, "han", "12345");
    Album album = new Album("앨범1", 15000, "seo");
    Movie movie = new Movie("영화1", 18000, "감독1", "배우1");

    book.print();
    album.print();
    movie.print();

    int sum = book.getPrice() + album.getPrice() + movie.getPrice();
    System.out.println("상품 가격의 합: " + sum);
  }
}



🖥️ 실행 결과




💡정답


단축키
Override Methods → ⌃ + O

✏️ Item

package extends1.ex;

public class Item {
  private String name;
  private int price;

  public Item(String name, int price) {
    this.name = name;
    this.price = price;
  }

  public int getPrice() {
    return price;
  }

  // ex) 이름: JAVA, 가격: 10000
  public void print() {
    System.out.println("이름: " + name + ", 가격: " + price);
  }
}



✏️ Book

package extends1.ex;

public class Book extends Item {
  private String author;
  private String isbn;

  public Book(String name, int price, String author, String isbn) {
    super(name, price);
    this.author = author;
    this.isbn = isbn;
  }

  @Override
  public void print() {
    super.print();
    System.out.println("- 저자: " + author + ", isbn: " + isbn);
  }
}



✏️ Album

package extends1.ex;

public class Album extends Item {

  private String artist;

  public Album(String name, int price, String artist) {
    super(name, price);
    this.artist = artist;
  }

  @Override
  public void print() {
    super.print();
    System.out.println("- 아티스트: " + artist);
  }
}



✏️ Movie

package extends1.ex;

public class Movie extends Item {

  private String director;
  private String actor;

  public Movie(String name, int price, String director, String actor) {
    super(name, price);
    this.director = director;
    this.actor = actor;
  }

  @Override
  public void print() {
    super.print();
    System.out.println("- 감독: " + director + ", 배우: " + actor);
  }
}
profile
매일 성장하는 주니어 개발자의 기록📝

0개의 댓글