프로모션
학습
강좌
과제
설문 & 퀴즈
게임
도움말
일정
커뮤니티
사용자
포럼
채팅
아티클
성공 사례
활동
후기
구독
라이트 테마
강의
리뷰
회사 소개
시작
학습 시작
Start learning now
진행 상황
코스
퀘스트 맵
레슨
Java 25
모든 퀘스트
모든 레벨
상속의 개념, extends 구문
JAVA 25 SELF
레벨 17,
레슨 0
이 강의에서는 Java에서 상속이 무엇인지, 그것으로 코드 중복을 어떻게 피하는지, 그리고 키워드
extends
로 계층을 선언하는 방법을 살펴봅니다. 하위 클래스가 정확히 무엇을 상속하는지, 어떤 제한이 있는지(단일 상속, private 멤버, 생성자), 동물 예제로 실습하며, 생성자와 관련된 미묘한 부분과 흔한 실수도 함께 정리합니다.
메서드 재정의(override), @Override 애너테이션
JAVA 25 SELF
레벨 17,
레슨 1
이번 강의에서는 Java에서의 메서드 재정의를 다룹니다: 하위 클래스가 왜, 어떻게 상위 클래스의 동작을 바꾸는지,
@Override
애너테이션이 주는 이점, 기본 타입 참조를 통한 호출에서 폴리모피즘이 어떻게 동작하는지, 그리고 핵심 규칙(시그니처, 접근 제한자, 예외, 공변성)과 제약(
static
,
final
,
private
)을 살펴봅니다. 마지막에는 미니 프로젝트 “동물원”으로 실습하고 자주 하는 실수를 정리합니다.
super 사용: 기본 클래스의 생성자와 메서드 호출
JAVA 25 SELF
레벨 17,
레슨 2
Java에서 키워드
super
를 파헤칩니다: 기본 클래스의 메서드와 생성자를 호출하는 방법, 부모의 가려진 필드에 접근하는 방법, 언제 그리고 왜
super
및
super(...)
로 동작을 확장하는지, 그리고 제약 사항(정적 메서드에서 사용할 수 없음,
private
에는 접근 불가)과 흔한 실수까지.
Animal
/
Cat
/
Dog
,
Vehicle
/
Car
계층 구조를 이용한 실습 예제가 많습니다.
클래스 계층 구조 만들기, 생활 속 예시
JAVA 25 SELF
레벨 17,
레슨 3
Java에서 클래스 계층 구조를 설계하고 구현하는 방법을 배웁니다: 공통과 개별을 구분하고, 상속 트리를 구성하며, 어디에
is-a
관계가 적절하고 언제 컴포지션(
has-a
)을 쓰는 것이 좋은지 알아봅니다. 실제 예시(동물, 기하, 교통수단, 사용자)를 통해 아키텍처의 미묘한 점과 설계 시 발생하기 쉬운 오류들을 살펴봅니다.
상속의 문제와 제약
JAVA 25 SELF
레벨 17,
레슨 4
이 강의에서는 Java의 상속 모델이 갖는 한계를 다룹니다: 클래스의 단일 상속, 생성자의 비상속, 그리고
private
멤버의 비가시성. ‘취약한’ 계층 구조와 ‘깨지는’ 상속의 효과를 살펴보고, 대안 — 합성(
has-a
), 위임, 인터페이스 — 그리고 “언제 정말로
extends
가 필요한가”에 대한 기준을 제시합니다. 그 과정에서
super(...)
를 통한 부모 생성자 호출과 전형적인 설계 실수도 짚어 봅니다.
다형성의 개념과 필요한 이유
JAVA 25 SELF
레벨 18,
레슨 0
이 강의에서는 Java의 다형성을 다룹니다: 그것이 무엇인지,
overloading
과
overriding
의 차이, 지연 바인딩이 어떻게 동작하는지, 그리고 하나의 인터페이스가 왜 여러 구현을 가질 수 있는지. 실용적인 예제를 통해 다형성이 아키텍처를 단순화하고 코드를 확장 가능하게 만들며 모듈 간 결합도를 낮추는 방법을 살펴봅니다.
메서드 오버로딩 (overloading)
JAVA 25 SELF
레벨 18,
레슨 1
Java의 메서드 오버로딩을 깊이 있게 살펴봅니다: 동일한 메서드의 여러 버전을 언제 선언하는 것이 합리적인지, 컴파일러가 매개변수에 따라 최적의 일치를 어떻게 선택하는지, 반환 타입만으로는 오버로드할 수 없는 이유, 그리고 오버로드된 생성자와
...
varargs가 어떻게 동작하는지.
println
예제를 분석하고, 간단한
Calculator
를 만들어 본 뒤, 오토박싱과
Integer
/
Long
사이의 모호성과 관련된 전형적인 오류들을 짚어봅니다.
메서드 오버라이딩(overriding): 오버로딩과의 차이
JAVA 25 SELF
레벨 18,
레슨 2
Java에서 메서드 오버라이딩을 자세히 살펴봅니다: overriding이 실행 시점(run-time)에 다형성을 어떻게 보장하는지,
overloading
과 무엇이 다른지, 어떤 규칙이 적용되는지(시그니처, 접근 제어, 예외, 공변성),
@Override
를 어떻게 사용하고
super
로 부모의 로직을 호출하는지. 실용적인 예제를 보여 주고 흔한 실수도 정리합니다.
다형성의 실전 활용
JAVA 25 SELF
레벨 18,
레슨 3
실제 예제로 다형성을 보여 줍니다: 서로 다른 객체를 기본 타입의 하나의 컬렉션에 보관하고
if
/
switch
없이 “올바른” 메서드를 호출하는 방법, 새로운 하위 클래스를 추가해도 로직을 다시 작성할 필요가 없다는 점, 그리고 이 접근의 한계. 직원 계층을 만들고 메서드
work()
를 정의한 뒤, 확장성에 대해 이야기하고, 흔한 실수를 살펴봅니다.
다형성과 추상 클래스의 관계
JAVA 25 SELF
레벨 18,
레슨 4
추상 클래스와 메서드가 공통 계약을 형성하고 Java에서 다형성을 가능하게 하는 방식: 추상 객체를 만들 수 없는 이유, 하위 클래스가 필수 메서드를 어떻게 구현하는지, 상위 타입을 통해 작업하면서도 “올바른” 동작을 얻는 방법. 동물과 직원 계층 예시, 문법상의 뉘앙스, 흔한 실수를 함께 살펴봅니다.
OOP에서의 추상화: 왜 필요하며 어떻게 적용할까
JAVA 25 SELF
레벨 19,
레슨 0
Java의 OOP에서 추상화를 이해하기 쉽게 소개합니다: 무엇인지, 왜 필요한지, 그리고 설계에 어떻게 적용하는지. 언어 도구 — 추상 클래스
abstract class
와 인터페이스
interface
, 추상 메서드, 그리고 공통 계약을 통한 작업(예:
payment.process()
나
draw()
같은 호출)을 살펴봅니다. 실습 예제(
Shape
,
Payment
, Transport)를 통해 구현 세부를 숨기고 결합도를 낮추며 시스템 확장을 쉽게 만드는 방법을 보여줍니다.
추상 클래스와 메서드: 문법, 예제
JAVA 25 SELF
레벨 19,
레슨 1
이 강의에서는 Java의 추상 클래스와 메서드를 단계적으로 살펴봅니다: 언제
abstract
가 필요한지, 추상
class
를 어떻게 선언하는지,
interface
와의 차이가 무엇인지, 그리고 하위 클래스에서 필수 메서드(예:
makeSound()
)를 어떻게 구현하는지. 이론은
Animal
,
Transport
,
Shape
같은 예제로 뒷받침하고, 추상 클래스의 인스턴스를 생성하려는 시도부터 잘못된 한정자 사용까지 흔한 실수도 함께 다룹니다.
더 보기
1
...
8
9
10
11
12
...
30
Please enable JavaScript to continue using this application.