목차
불편함을 코드로 지웁니다.
개발 공부 노트, 개발 도구와 문제를 해결한 과정, AI 프롬프트와 Obsidian 활용법을 정리합니다.
[TIL] Day 12 — Java 다형성 + 추상클래스 + 인터페이스
날짜: 2025-11-04
기술 스택: Java OOP abstract interface Polymorphism
부트캠프: 풀스택 개발자 부트캠프 3주차
다형성 규칙
- 상위 클래스는 하위 클래스를 참조 가능 (업캐스팅)
- 접근 영역은 상위 클래스 영역으로 한정
- 오버라이딩된 메서드는 런타임에 실제 객체 타입의 구현 호출 (동적 바인딩)
- 하위 클래스는 상위 클래스 참조 불가. 단, 상위 타입으로 참조 중인 객체를 강제 형변환 시 가능
추상 클래스
abstract class Animal {
void breathe() { System.out.println("호흡"); }
abstract void sound(); // 구현 없음 — 하위 클래스에서 반드시 구현
}
class Dog extends Animal {
@Override
public void sound() { System.out.println("멍멍"); }
}
Animal dog = new Dog(); // 다형성
dog.sound(); // 멍멍
인터페이스
interface Flyable { void fly(); }
interface Swimmable { void swim(); }
class Duck implements Flyable, Swimmable { // 다중 구현
@Override public void fly() { System.out.println("날다"); }
@Override public void swim() { System.out.println("헤엄치다"); }
}
abstract class vs interface
| 구분 | 추상 클래스 | 인터페이스 |
|---|---|---|
| 키워드 | extends |
implements |
| 다중 상속 | 불가 | 가능 |
| 필드 | 일반 필드 가능 | public static final 상수만 |
| 메서드 | 일반·추상 메서드 모두 가능 | 추상 메서드 + default/static 메서드 (Java 8+) |
| 관계 | IS-A | CAN-DO (능력 보유) |
트러블슈팅
- 추상 클래스
new Animal()시도 시 컴파일 오류 — 하위 클래스로 생성 implements한 클래스에서 미구현 메서드 있으면 컴파일 오류 — 모두 구현
더 알아볼 것
-
default인터페이스 메서드 활용 사례 - 주요 인터페이스:
Runnable,Comparable,Iterable - 함수형 인터페이스 + 람다 기초
- CSS
animation,@keyframes실습
'⏳ Time Log > TIL · 하루' 카테고리의 다른 글
| [TIL] Day 14 — Java 예외처리 + 제네릭 + 컬렉션 (0) | 2026.02.19 |
|---|---|
| [TIL] Day 13 — JVM 메모리 구조 + Java OOP 실습 (0) | 2026.02.19 |
| [TIL] Day 11 — Java 클래스 구조 심화 + 다형성 개념 (0) | 2026.02.18 |
| [TIL] Day 10 — Java 상속 심화 + 싱글턴 패턴 (0) | 2026.02.18 |