오늘이라도

25. 다형성 ② 본문

취업성공패키지 SW 개발자 교육/Java

25. 다형성 ②

upcake_ 2020. 3. 25. 19:24
반응형

https://github.com/upcake/Class_Examples

교육 중에 작성한 예제들은 깃허브에 올려두고 있습니다. 


▲예제 01-1. 실인수, 가인수, instanceof

 - 실인수가 가인수가 타입이 다르더라도 실인수가 자식, 가인수가 부모면 다형성 인수여서 적용이 된다.

 - instancof() 메서드는 타입(클래스)을 알아볼 때 사용한다.

 

▲예제 01-2. 다형성 배열

 - 객체를 생성한 뒤 생성된 객체를 배열에 저장함으로써 다형성 배열을 만들 수 있다.

 

 

▲상속, 다형성, 인터페이스 설명

 - 상속(Inheritance)

  · 상위 클래스로부터 하위 클래스가 상태 정보와 행위 정보를 물려받는다.

  · 상태 정보는 멤버 변수(필드)를 말하며 행위 정보는 메서드를 말한다.

  · 하위 클래스에서 상태 정보나 행위 정보를 추가/수정할 수 있는데 이것을 재정의(Override)라고 한다.

  · 상속받을 때는 extends 키워드를 사용한다.

  · 상속은 단일 상속만 되기 때문에 다중 상속이 되는 interface가 등장했다.

 

 - 다형성(Polymorphism)

  · 하위 클래스마다 공통적인 행위 정보가 존재할 때 추상 클래스에 추상 메서드를 구현할 수 있다.

  · 추상 클래스를 상속받기 위해서는 반드시 메서드의 재정의가 필수이다.

  · 하위 클래스의 동작 방식을 몰라도 업캐스팅을 통해 하위 클래스를 동작시킬 수 있다.

  · 하위 클래스의 동작이 수정되더라도 사용하는 쪽에서는 영향을 미치지 않는다.

  · 상위 클래스가 동일한 메시지로 하위 클래스를 서로 다르게 동작시킬 수 있다.

 

 - 인터페이스(Interface)

  · 자바는 단일 상속만 허용하는데 Interface는 다중 상속이 가능하다.

  · 인터페이스의 모든 메서드는 추상 메서드로만 구성된다.

  ·상속받은 하위 클래스는 반드시 재정의가 필수이다.

  · 인터페이스의 상속은 implements 키워드를 통해 이루어진다.

 

 

▲예제 02-1. 인터페이스 상속을 활용한 예제

 

▲예제 02-2. 인터페이스

 - 인터페이스, abstract 키워드를 사용하고 추상 메서드를 포함한다.

 

▲예제 02-3. 하위 클래스 ①
▲예제 02-4. 하위 클래스 ②

 - 인터페이스의 상속은 implements 키워드를 사용한다.

 

 

▲예제 03-1. 상속과 다형성을 활용한 예제
▲예제 03-2. 상태 정보를 담은 상위 클래스
▲예제 03-3. 행위 정보를 담은 클래스
▲예제 03-4. 하위 클래스 ①
▲예제 03-5. 하위 클래스 ②
▲예제 03-6. 하위 클래스 ③
▲예제 03-7. 하위 클래스 ④

반응형