23.02.28 추상화 / 다형성

김민성·2023년 2월 27일
0

학습목표


✍️ 추상화의 핵심 개념과 목적을 이해하고 설명할 수 있다.
✍️ 추상 클래스와 인터페이스의 차이를 설명할 수 있다.
✍️ 자바 객체지향 프로그래밍에서 다형성이 가지는 의미와 장점을 이해할 수 있다.
✍️ 코딩 예제를 실제로 입력해보면서 다형성이 실제로 어떻게 활용되는 지 이해할 수 있다.

다형성 : 한 타입의 참조변수를 통해 여러 타입의 객체를 참조할 수 있도록 만든 것

참조변수의 타입 변환을 위한 세 가지 조건
1. 서로 상속 관계에 있는 상위 클래스 - 하위 클래스 사이에만 타입 변환이 가능
2. 하위 클래스 타입에서 상위 클래스 타입으로의 타입 변환(업캐스팅)은 형변환 연산자를 생략 가능
3. 반대로 상위 클래스에서 하위 클래스 타입으로 변환은 형변환 연산자를 반드시 명시

instanceof 연산자

참조_변수 instanceof 타입

캐스팅이 가능한 지 여부를 boolean 타입으로 확인

추상화 : 기존 클래스들의 공통적인 요소들을 뽑아서 상위 클래스를 만들어 내는 것.

abstract 제어자
abstract는 주로 클래스와 메서드를 형용하는 키워드로 사용되는데, 메서드 앞에 붙은 경우를 추상메서드, 클래스 앞에 붙은 경우를 추상 클래스라 부른다.
추상 메서드는 충분히 구체화되지 않은 ‘미완성 메서드’이며, 미완성 메서드를 포함하는 클래스는 ‘미완성 클래스'를 의미하는 추상 클래스가 된다.

final : 더이상 변경이 불가하거나 확장되지 않는 성질을 가진다.

인터페이스 : “서로 다른 두 시스템, 장치, 소프트웨어 따위를 서로 이어주는 부분 또는 그런 접속 장치"라 정의할 수 있다. 인터페이스는 “추상 메서드의 집합"으로 이뤄져있다.
추상클래스를 구현하기 위해서는 extends를 사용하지만 인터페이스를 구현하려면 implements를 사용한다.
추상 클래스와 달리 인터페이스는 다중 구현이 가능하다.

0개의 댓글