'다형성'에 해당되는 글 2건

  1. 2015.07.31 인터페이스와 다형성
  2. 2015.07.31 JAVA 다형성

인터페이스와 다형성


인테페이스도 다형성의 중요한 수단이다.

데이터타입을 인터페이스로 지정가능


interface I{}

class C implements I{}

public class PolymorphismDemo2 {


public static void main(String[] args) {

I obj = new C();

}

}


클래스 C의 데이터 타입으로 인터페이스 I 가 될수 있다.

이것은 다중상속이 지원되는 인터페이스의 특징을 결합해서 다른 양상의 효과로 만들어낸다.



주석처리된 메소드 호출은 오류발생

오휴발생이유는  obji2의 데이터타입이 인터페이스 I2이기 때문!

I2는 메소드 A만을 정의하고 있고 I2를 데이터 타입으로 하는 인스턴스는 마치 메소드 A만을 가지고 있는 것처럼 동작함.

인스턴스 obji2의 데이터 타입을 I2로 한다는 것은 인스턴스를 외부에서 제어할 수 있느 조작 장치를 인스턴스 I2의 맴버로 제한한다는 의미!!


'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
JAVA 다형성  (0) 2015.07.31
Posted by 양승아
:

JAVA 다형성

JAVA/JAVA 2015. 7. 31. 15:50 |

다형성(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
Posted by 양승아
: