⏳ Time Log/1. One Day (Daily · TIL)

Day 12 (11/4) - Java 다형성, 추상클래스 및 인터페이스

this.Serena 2026. 2. 19. 00:00

📝 오늘의 강의 요약

핵심 키워드: 다형성(Polymorphism), 추상 클래스(Abstract), 인터페이스(Interface), CSS 애니메이션

  • Java: 객체지향의 꽃인 다형성 원리와 미완성 설계도인 추상화 개념 정립
  • Java: 추상 클래스와 인터페이스의 차이점 및 상황별 선택 기준 파악
  • HTML/CSS: absolute 포지셔닝과 키프레임 기반의 슬라이드 애니메이션 실습

☕ Java 다형성 및 추상화

1. 다형성(Polymorphism)의 원리

  • 개념: 하나의 객체가 여러 가지 타입을 가질 수 있는 성질
  • 업캐스팅(Upcasting): 상위 클래스 타입의 참조 변수로 하위 객체를 참조하는 행위
  • 동적 바인딩(Dynamic Binding): 런타임에 실제 객체의 오버라이딩된 메서드가 호출되는 메커니즘
  • 접근 범위: 참조 변수의 타입(부모)에 정의된 멤버로 제한되나, 오버라이딩된 메서드는 자식의 것이 실행됨
  • 강제 형변환(Downcasting): 업캐스팅된 변수를 다시 자식 타입으로 돌려 자식 고유 멤버에 접근하는 기법

2. 추상 클래스(Abstract Class)

  • 목적: 하위 클래스에서 반드시 구현해야 할 기능을 규정하여 메서드 오버라이딩을 강제함
  • 특징: abstract 키워드를 사용하며, 직접 객체 생성(인스턴스화) 불가
  • 구성: 생성자, 필드, 일반 메서드, 추상 메서드, final 메서드 등 포함 가능

3. 인터페이스(Interface)

  • 목적: 클래스가 따라야 할 '규칙' 또는 '계약'을 정의하여 다중 상속과 유사한 효과 제공
  • 필드: 모든 필드는 암시적으로 public static final 상수임
  • 메서드: 기본적으로 모든 메서드가 추상 메서드이나, Java 8 이후 default 및 static 메서드 추가 가능
  • 특징: 클래스 간의 느슨한 결합(Loose Coupling)을 유도하여 유지보수성 향상

📊 추상 클래스 vs 인터페이스 비교

특징 추상 클래스 (Abstract Class) 인터페이스 (Interface)
상속/구현 키워드 extends implements
다중 상속 여부 단일 상속만 가능 다중 구현 가능
변수(필드) 인스턴스 변수, 정적 변수 모두 가능 오직 상수(static final)만 가능
메서드 구성 일반 메서드 + 추상 메서드 주로 추상 메서드 (default 가능)
존재 목적 공통 기능 상속 및 확장 (IS-A) 특정 기능 및 역할 부여 (CAN-DO)

🎨 CSS 레이아웃 및 효과

1. 배경 및 포지션 속성

  • background-size: cover: 이미지를 배경 영역에 꽉 차게 조절
  • background-position: center: 배경 이미지를 중앙에 배치
  • position: absolute: 기준이 되는 조상 요소를 근거로 자유로운 위치 지정

2. CSS 애니메이션 (Slider 예제)

  • animation: slider 12s infinite linear 조합으로 무한 루프 효과 구현
  • 가상 클래스 선택자: :hover를 활용한 투명도 및 커서 변화 제어
  • 구조 선택자: nth-child, nth-of-type 등을 이용한 세밀한 요소 선택

🛠️ 실습 메모 및 복기

✅ Java 프로그래밍 수칙

  • 지역 변수 초기화: 지역 변수는 사용 전 반드시 직접 초기화 수행 필수
  • static 활용: 객체 생성 없이 클래스명으로 호출 가능 여부에 따른 멤버 분류
  • 상속 관계: 하위 클래스는 상위 클래스를 참조할 수 없으나, 업캐스팅된 경우 강제 형변환으로 접근 가능

✅ 코드 예시 구조

  • Animal 추상 클래스: 공통 동작인 breathe는 구현하고, 소리 내는 sound는 하위 클래스에 강제 위임
  • Duck 클래스: Flyable, Swimmable 인터페이스를 다중 구현하여 비행과 수영 기능 동시 보유