Abstract란 구체적인 개념으로 부터 공통된 부분들만 추려내어 일반화 한것을 말한다.
Abstract method란
메소드 뒤의 중괄호{ } 를 생략하여, 사실상 내용이 없는 메소드를 의미한다.
Abstract Method의 특징으로는
Abstract Class를 상속받는 자식 Class에서는 Abstract Method를 반드시 구현해주어야 한다.
(Abstract Class란 Abstract Method가 1개이상 들어가 있는 경우를 말한다.)
Abstract Class의 목적은
여러개의 클래스들이 상당수의 공통된 점을 가지고 있고 소수의 다른 점들이 있을 때
개별적으로 클래스들을 따로 작성하는 것보다 abstract클래스를 이용하는 것이 효율적이기 때문이다.
---------------------Abstract 추가 설명---------------------
추상 클래스를 쓰는 이유는?
서로 다른 클래스들이 상당수의 공통된 점을 갖고 있지만,
소수의 다른점들이 있을때 이들의 공통된 점을 구성해놓고
각각의 다른 부분들만 구현하는 것이 효율적이기 때문.
추상클래스는 추상메서드를 포함하고 있다는 것을 제외하고는 일반클래스와 전혀
다르지 않다. 추상클래스에서도 생성자가 있으며, 멤버변수와 메서드도 가질 수 있다.
추상메서드
추상 메서드란 메서드를 부모클래스에 선언만 해놓고, 실제 수행될 내용은 작성하지 않는것이다.
그이유는 메서드의 내용이 자식 클래스에 따라 달라질 수 있기 때문이다.
따라서 추상클래스로부터 상속받는 자손클래스는 오버라이딩을 통해 부모클래스인 추상클래스의
추상메서드를 모두 구현해주어야 한다.
--------------------------------------------------------------------
Interface란
abstract Class의 한 종류로써, 기본적으로 abstract class가 가지는 특징을 가지고 있다.
또한 자바에서 유일하게 다중상속이 가능하다.
Interface가 가질수 있는 멤버
*public static final 멤버변수
-공유를 하며 값을 바꿀수 없는 static final 멤버 필드만 포함 할 수 있다.
-만약 static final을 적지 않는다 하더라도 자동으로 static final로 인식된다.
*public abstract 멤버 메서드
-자식 Class에서 Overroading 시 정의하기 나름이기 때문에 모호하지 않다.
-메소드에 abstract를 명시하지 않아도 abstract 메소드로 인식한다.
-자식 Class에서 Overroading시에는 abstract를 붙히면 안된다.
*public static inner 클래스
Interface를 상속받는 Class는 implements 예약어를 사용한다.
-----------------------------Interface 추가 설명-----------------------------------
interface
인터페이스는 일종의 추상클래스이다.
인터페이스와 추상클래스의 다른점은 일반 메서드 또는 멤버변수를 구성원으로 가질 수 없다.
오직 추상메서드와 상수만을 멤버로 가질 수 있으며, 그 외의 다른 어떠한 요소도 허용하지 않는다.
또한 자바에서 유일하게 다중상속이 가능하다.
또한 abstract클래스에서는 메서드에 abstract를 꼭 붙혀야 하지만,
Interface에서는 abstract를 안붙혀도 자동 인식되고, 멤버변수에 static final을 붙히지 않아도
자동인식된다.
'JAVA > 팀장님 JAVA수업' 카테고리의 다른 글
팀장님 수업9 (0) | 2012.07.06 |
---|---|
팀장님 수업 8 (0) | 2012.07.03 |
팀장님수업 6번째 보충자료(접근 제한자) (0) | 2012.06.22 |
팀장님수업6번째 보충자료 (캡슐화 은닉화) (0) | 2012.06.22 |
팀장님수업6 (0) | 2012.06.22 |