다형성
부모 클래스 타입 참조변수 하나로 상속관계에 있는
여러 타입의 자식 객체를 참조할 수 있는 기술
래퍼런스 : 참조
클래스 형변환
부모 타입 레퍼런스 변수로 자식 객체 참조시
자동으로 업 캐스팅(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 |
객체 | 객체 생성 불가 | 객체 생성 불가 |
용도 | 참조 타입 | 참조 타입 |
'study > java' 카테고리의 다른 글
10_java_String,wrapper (0) | 2019.11.07 |
---|---|
9_java_프로그래밍 언어활용 1~8 정리 (0) | 2019.11.06 |
7_java_상속,오버로딩,오버라이딩차이 (0) | 2019.11.04 |
6_Java_가변배열,추상화,필드,생성자 (0) | 2019.11.03 |
5_Java_배열, 버블정렬 (0) | 2019.11.02 |