1. 다형성(ploymorphism)
다형성은 자바에서 매우 중요한 개념이다. 하지만 다형성 자체가 어렵다거나 새로운 기법에 대한 내용은 아니다. 이전에 알아본 (추상) 클래스 상속, 인터페이스 구현, 레퍼런스 형변환(업캐스팅), 오버라이딩 등 많은 내용들을 이용하여 프로그램을 효율적으로 만들 수 있는 방법이다. 따라서 앞에서 알아본 내용들에 대한 개념의 충분한 이해가 있다면 쉽게 이해가 가능하다. 이전 내용들을 잘 모르겠다면 위의 링크된 페이지에서 확인 후 밑의 내용을 보는 것이 좋다.
다형성(Polymorphism)
다형성이란 같은 자료형에 여러 가지 객체를 대입하여 다양한 결과를 얻어내는 성질을 의미한다.
다형성의 효과
하나의 타입으로 다양한 실행 결과를 얻을 수 있으며 객체를 부품화하여 유지 보수를 용이하게 한다.
다형성 구현 방법
클래스의 상속이나 인터페이스를 구현하는 자식 클래스에서 메서드를 재정의(오버라이딩) 하고 자식 클래스를 부모 타입으로 업캐스팅한다. 그리고 부모 타입의 객체에서 자식 멤버를 참조하여 다형성을 구현한다. 이전 포스팅에서 알아보았던 업 캐스팅의 예제도 다형성의 방법이다.
비유와 예제
위의 내용만으로는 이해하기에 어려울 수 있다. 간단한 비유와 그것에 대한 예제를 통해서 알아보도록 하자.
요새 많이 하는 게임 중에 오버워치라는 것이 있다. 이 게임에는 다양한 캐릭터가 있고 캐릭터마다 서로 다른 스킬들을 갖고 있다. 좌 클릭을 하면 각 캐릭터 마다에 기본 공격을 하고 우 클릭을 하거나 Shift, E, Q 버튼을 클릭하면 각 캐릭터마다 갖고 있는 고유한 스킬을 사용하게 된다. 즉, 오버워치라는 하나의 인터페이스에서 그것을 구현하는 각 캐릭터(객체) 들에 대해 동일한 버튼(메소드 오버라이딩)을 클릭하여 서로 다른 스킬을 사용하게 된다(다형성).
[JAVA/자바] 다형성(polymorphism)의 개념/의미/예제
다형성은 자바에서 매우 중요한 개념이다. 하지만 다형성 자체가 어렵다거나 새로운 기법에 대한 내용은 아...
blog.naver.com
is a 관계의 객체화 (상속관계의 객체화)
- 부모클래스로 데이터형을 선언하고 자식클래스를 생성해서 할당 하는 것이다.
- 부모클래스의 변수와 메소드만 호출 할 수 있다.
- 원칙적으로 자식클래스의 변수와 메소드는 호출 할 수 없다.
- 자식클래스에 부모클래스에게서 Override한 메소드가 있다면 그 메소드는 호출이 가능하다.
- class 뿐만 아니라 interface 등도 부모로 받을 수 있다.
has a 관계(포함관계)
- 다른 객체를 받아들여서 그 객체의 기능을 사용하는 것이다. (사람이 핸드폰을 사서 그 핸드폰의 기능을 사용하는 것)
- 받아들인 객체의 자원(메소드/변수)을 사용할 수 있다.
- 어떤 클래스 A가 또 다른 클래스인 B가 가진 기능을 사용하고 싶을때 B 클래스를 포함하면 B 클래스의 기능을 사용할 수 있다.
Java is a , has a 관계
◈ is a 관계의 객체화 (상속관계의 객체화) - 부모클래스로 데이터형을 선언하고 자식클래스를 생성해서 할당 하는 것이다. - 부모클래스의 변수와 메소드만 호출 할 수 있다. - 원칙적으
gbs1995.tistory.com
올인원 패키지 : JAVA 웹 개발 마스터👉https://bit.ly/35aoeAW
'패스트캠퍼스 환급 챌린지' 카테고리의 다른 글
[패스트캠퍼스 수강 후기] {자바 인강} 100% 환급 챌린지 {14} 회차 미션 (0) | 2020.11.16 |
---|---|
[패스트캠퍼스 수강 후기] {자바 인강} 100% 환급 챌린지 {14} 회차 미션 (0) | 2020.11.15 |
[패스트캠퍼스 수강 후기] {자바 인강} 100% 환급 챌린지 {12} 회차 미션 (0) | 2020.11.13 |
[패스트캠퍼스 수강 후기] {자바 인강} 100% 환급 챌린지 {11} 회차 미션 (0) | 2020.11.12 |
[패스트캠퍼스 수강 후기] {자바 인강} 100% 환급 챌린지 {10} 회차 미션 (0) | 2020.11.11 |