다형성(Polymorphism)
다형성이란 하나의 메소드나 클래스가 있을때 이것을 다양한 방법으로 동작하는것을 의미함
클래스와 다형성
클래스 B의 데이터형은 클래스 A이다.
클래스 B는 클래스A를 상속하고 있기 때문에 A 를 데이터형으로 삼는다.!!
클래스 B의 데이터 형을 클래스 A로 하면(상속) 클래스 B는 마치 A인거 처럼 동작한다.
클래스 B를 A인거 처럼 사용함
why ?
클래스 A의 메소드 X를 클래스 B에서 오버라이딩
B.x 실행결과
클래스 B의 데이터 타입을 클래스 A인스턴스화 했을 때 클래스 B의 메소드 y는 존재하지 않는거처럼 동작함 = 클래스 B 가 클래스 A화 됨!!
클래스 B의 데이터 타입을 클래스 A로 해서 인스턴스화 했을 때 클래스 B의 메소드 X를 실행하면 클래스 A에서 정의된 메소드가 아니라 클래스 B에서 정의된 메소드가 실행됨 = 클래스 B의 기본적인 성질은 그대로 간직함
즉!! 클래스B를 클래스 A의 데이터 타입으로 인스턴스화 했을 때 클래스 A에 존재하는 맴버만이 클래스 B의 맴버가 됨. 동시에 클래스 B에서 오버라이딩한 맴버의 동작방식은 그대로 유지함.
'JAVA > JAVA' 카테고리의 다른 글
java foreach 반복문 (0) | 2015.08.13 |
---|---|
JAVA 앞뒤 공백제거 trim() (0) | 2015.08.13 |
[java] URL(xml파일) java 파싱하는 방법 (0) | 2015.08.12 |
예외처리 (0) | 2015.07.31 |
인터페이스와 다형성 (0) | 2015.07.31 |