1. 정의

하나로 여러가지 일을 하는 것

 

* 상속과 함께 사용되는 다형성의 기법들

- 오버라이딩 (Overriding)

- 추상 클래스(Abstract Class) 와 추상 메소드(Abstaract Method)

- 인터페이스 (Interface)

- 업캐스팅(Upcasting), 다운캐스팅(Downcasting)

 

 

2. Abstract

추상 메소드 : 미완성 클래스. 몸체가 없는 메소드를 포함하고 있음. 몸체가 없는 메소드의 선언부에 abstract 키워드를 사용해야 함

추상 클래스 : 추상 메소드를 포함하는 클래스

 

 

 

미완성 메소드를 포함하고 있기 때문에 클래스 자체가 미완성

 

ㄱ. 단점

- 완전한 클래스가 아니기 때문에 추상 클래스를 이용하여 객체 생성 불가

- 완전한 클래스로 만들기 위해서는 상속의 기법을 이용하여 추상 메소드를 구현해야 함

=> 추상 클래스를 상속받아 모든 추상 메소드를 구현 (상속을 통해 추상 메소드를 전부 구현해야만 객체 생성 가능)

=> 추상 메소드를 모두 구현하지 않으면 다시 abstract 클래스가 됨

 

 

<추상 클래스인 Example044를 상속하여 추상 메소드를 구현함>

 

 

<메인 메소드에서 상속된 클래스의 객체를 불러옴>

 

 

 

3. 인터페이스 (Interface)

골격만 가지고 있는 클래스. 몸체 없는 메소드(추상 클래스)의 집합 (구현된 메소드가 아예 들어가지 못함)

 

* 추상 클래스 : 일부분이 추상 메소드, extends 이용하여 추상 메소드 구현

  인터페이스 : 전체가 구현되지 않은 추장 메소드로 이루어진 클래스, implements 이용하여 추상 메소드 구현

 

인터페이스 내의 모든 메소드들은 구현을 목적으로 하기 때문에 디폴드로 public 속성을 가지고 있다

(일반 클래스는 디폴트가 private이다)

 

추상 메소드로 이루어져 있지만 멤버 변수로 static 상수는 포함시킬 수 있다 => static 전역 상수 변수가 됨

 

 

 

 

4. 업캐스팅 (Upcasting)

하위 클래스의 객체가 상위 클래스의 형으로 캐스팅되는 것

별도의 작업 없이 형만 정확하다면 자동으로 캐스팅됨

추상클래스, 인터페이스의 업캐스팅도 같음

다형성의 극대화

 

* 업캐스팅과 연결되는 기술들 : 상속, 오버라이딩, 가상 메소드, 추상 클래스, 인터페이스

 

 

 

 

* 캐스팅 (Casting)

기본 데이터 타입 : 큰 데이터 타입의 데이터를 작은 데이터 타입에 할당시 데이터의 손실 발생

클래스 : 하위 클래스의 객체를 사우이 클래스 형의 객체로 캐스팅하는 것이 가능

 

 

 

 

'BackEnd > Java' 카테고리의 다른 글

Java :: 패키지 이름 명명 규칙  (0) 2016.04.02
Servlet :: Servlet(서블릿) 이란?  (0) 2016.04.01
Java :: this  (0) 2016.03.21
Java :: 상속(Inheritance)  (0) 2016.03.20
Java :: 생성자(Constructor)  (0) 2016.03.18

+ Recent posts