8_java_다형성,추상클래스와 인터페이스

study/java · 2019. 11. 5. 07:13

다형성

부모 클래스 타입 참조변수 하나로 상속관계에 있는

여러 타입의 자식 객체를 참조할 수 있는 기술

래퍼런스 : 참조

클래스 형변환

부모 타입 레퍼런스 변수로 자식 객체 참조시

자동으로 업 캐스팅(Up-casting)이 진행됨

다운 캐스팅(Down Casting)

부모 클래스 타입의 참조형 변수를 자식 클래스 타입으로 형변환 하는 것

객체배열과 다형성

다형성을 이용하여 상속 관계에 있는 하나의 부모 클래스 타입의

배열 공간에 여러 종류의 자식 클래스 객체 저장기능

정적 바인딩

프로그램 실행 전 컴파일 단계에서

메소드와 메소드 호출부를 연결

동적 바인딩

프로그램 실행 후 당시의 객체타입을 기준으로 바인딩 되는 것

instanceof

현재 참조형 변수가 어떤 클래스형의 객체 주소를 참조하고 있는지 확인

true/false 반환

추상 클래스

몸체 없는 메소드를 포함한 클래스

상속 시 반드시 구현해야 하는 오버라이딩이 강제화되는 메소드

추상 클래스 특징

1. 미완성 클래스 -> 반드시 상속하여 객체 생성

2. abstract 메소드가 포함된 클래스는 반드시 abstract 클래스

 abstract 메소드가 없어도 abstract 클래스 선언 가능

3. 클래스 내에 일반 변수,메소드 포함 가능

4. 객체생성은 안되지만 참조형 변수 타입으로 사용 가능

추상 클래스의 장점

일괄된 인터페이스 제공

꼭 필요한 기능 강제화

인터페이스

1. 모든 인터페이스의 메소드는 묵시적으로 public abstract

2. 변수는 묵시적으로 public static final

3. 객체생성은 안되나 참조형 변수로는 가능

인터페이스 장점

상위 타입 역할로 다형성을 지원하여 연결

해당 객체가 다양한 기능 제공시에도 인터페이스에 해당하는 기능만을 사용하게 제한 기능

공통 기능상의 일관성 제공

공동 작업을 위한 인터페이스 제공

인터페이스끼리의 상속은 extends

추상클래스와 인터페이스

구분 추상 클래스 인터페이스
필드 일반, 상수 상수
상속 단일상속 다중상속
구현 extends 사용 implements 사용
추상 메소드 abstract 메소드0개 이상 모든 메소드는 abstract
abstract 명시적 사용 묵시적으로 abstract
객체 객체 생성 불가 객체 생성 불가
용도 참조 타입 참조 타입