1. 학습
  2. /
  3. 강의
  4. /
  5. Python의 객체 지향 프로그래밍

Connected

연습 문제

정사각형과 직사각형

리스코프 치환 원칙을 위반하는 고전적 예로 원-타원 문제, 또는 정사각형-직사각형 문제가 자주 거론됩니다.

겉보기에는 h(높이)와 w(너비) 속성을 가진 Rectangle 클래스를 정의하고, 그로부터 Square 클래스를 상속해도 될 것처럼 보입니다. 어쨌든 정사각형은 "직사각형의 한 종류"이니까요!

하지만 이런 직관은 객체 지향 설계에는 그대로 적용되지 않습니다.

지침 1/4

undefined XP
    1
    2
    3
    4
  • 생성자에서 h와 w 두 매개변수를 받고, 해당 값을 h와 w 속성에 설정하는 Rectangle 클래스를 만드세요.
  • Rectangle을 상속받는 Square 클래스를 만들고, 생성자에서 매개변수 w 하나만 받아, h와 w 속성을 모두 w 값으로 설정하세요.