SW 전공
시험 직전 요약장
판단 기준과 헷갈리는 개념, 대표 예제를 짧게 확인하세요.
객체지향 설계와 다형성
원래 이론 →판단 기준
상속은 강한 관계를 만든다. 변경 가능성이 크거나 단순 기능 재사용 목적이라면 객체를 필드로 포함하고 위임하는 합성이 더 유연할 수 있다.
예시·텍스트좌우로 이동해 전체 내용을 확인하세요. 키보드: ←·→, Home·End
상속: ElectricCar is-a Car
합성: Car has-a Engine
“상속보다 합성을 무조건 사용”하는 규칙이 아니라, 도메인 관계와 교체 가능성을 보고 선택한다.
헷갈리는 개념
Java의 인스턴스 메서드 오버라이딩과 필드·정적 메서드 숨김은 다르게 판독한다.
JAVA좌우로 이동해 전체 내용을 확인하세요. 키보드: ←·→, Home·End
class Parent {
int value = 1;
static String who() { return "P"; }
String show() { return "P"; }
}
class Child extends Parent {
int value = 2;
static String who() { return "C"; }
@Override String show() { return "C"; }
}
Parent p = new Child();
도식좌우로 이동해 전체 내용을 확인하세요. 키보드: ←·→, Home·End
p.value→1 : 선언 타입 기준 필드 선택p.who()→P : 정적 메서드 숨김, 선언 타입 기준p.show()→C : 인스턴스 메서드 오버라이딩, 실제 객체 기준대표 계산·예제
JAVA좌우로 이동해 전체 내용을 확인하세요. 키보드: ←·→, Home·End
interface Shape {
double area();
}
class Circle implements Shape {
private final double radius;
Circle(double radius) {
this.radius = radius;
}
@Override
public double area() {
return Math.PI * radius * radius;
}
}
class Rectangle implements Shape {
private final double width;
private final double height;
Rectangle(double width, double height) {
this.width = width;
this.height = height;
}
@Override
public double area() {
return width * height;
}
}
호출자는 구체 클래스가 아니라 Shape에 의존할 수 있다.
내 최근 연습 오답
현재 브라우저의 연습 채점 기록에서 공개된 단원과 연결된 오답을 확인합니다.
오답 기록을 확인하고 있습니다.