본문 바로가기

JAVA

다형성 / 동적 바인딩 / 인터페이스 / 추상클래스

다형성

다형성이란, 부모 타입으로 자식을 다루는 것을 말한다.

부모 타입으로 자식을 다룰 때, 부모 클래스의 결과가 실행되어야 한다고 생각되지만,

실제로는 자식 클래스의 결과가 실행된다.

 

이러한 현상을 동적 바인딩이라고 하는데,

동적 바인딩은 런타임 시점에 객체 타입을 기준으로 실행될 함수를 호출하는 것을 말한다.

 

컴파일 시점에서는 부모 타입을 참조하지만, 런타임 시점에는 객체 타입을 기준으로 호출하여 자식을 호출하는 것이다.

 

 

인터페이스

추상메서드(만 있는) 집합
껍데기 무조건 모두 public
public abstract가 붙어야하는데 어차피 다 붙어서 편의상 떼버리고 쓰자!

 

 

추상클래스
추상메서드를 가지고 있는 클래스
일반 클래스처럼 인스턴스 변수, 메서드, 생성자 자유롭게 가질 수 있는데

추상메서드도!도!!! 포함되어 있다면 추상 클래스인거야.

 

추상메서드란? 몸통이 없는 메서드 { } 이 안이
비었다고!!
추상클래스와 메서드에는 abstract 키워드 추가

추상클래스는 상속을 통해 모두 구현되어야 객체 생성이 가능하다. 플레이어 오디오플레이어 예시 생각하기!


인터페이스와 추상클래스의 차이
추상클래스는 일반 클래스야 인스턴스 변수도 있고~ 생성자도 있고~ 근데!! 추상메서드도 있는거야. 그걸 추상클래스라고 하고, 인터페이스는 오로지 추상메서드만!! 가진걸 말하지.
즉, 추상클래스 = 추상메서드도!
인터페이스 = 추상메서드만!

'JAVA' 카테고리의 다른 글

7장_1  (0) 2021.01.22
쓰레드  (0) 2021.01.20
static은 언제 붙일까?  (0) 2021.01.14
Comparator / Comparable 인터페이스  (0) 2021.01.12
지네릭스  (0) 2021.01.11