반응형
추상 - abstract
추상은 실체 간의 공통되는 특성이나 속성을 추출한 것을 말한다.
예를 들어 고양이, 개, 호랑이의 공통되는 특성은 동물이다. 이와 같이 구체적인 실체가 아니라 공통되는 특성이 추상적인 것이다.
실체 클래스 = 객체를 직접 생성할 수 있는 클래스 추상 클래스 = 실체 클래스들의 공통적인 특성을 추출해서 선언한 클래스 |
추상 클래스와 실체 클래스는 상속관계이다. (상속해서 사용하도록 강제한다.)
추상 클래스가 부모이고 실체 클래스는 자식관계이며 실체 클래스는 추상 클래스의 특성(필드, 메서드)을 물려받고, 추가적으로 특성을 가질 수 있다.
○ 추상 클래스 선언
sound라는 추상 메소드를 가지고 있기에 클래스 앞에 'abstract'를 써서 추상 클래스를 만든다. 추상 메소드는 메소드를 선언할때 'abstract' 붙인 메소드이며 구체적인 내용을 가지고 있지 않다. sound 메소드와 다르게 house메소드는 { }과같이 구체적인 로직이 있기 Error이다. 추상 메소드는 appearance method와 같이 일반 메소드도 구현할 수 있다. |
추상 클래스를 쓰는 이유?
Dog.class, Cat.class, Tiger.class (실체 클래스)에서 sound( )메소드를 사용한다고 했을 때 Animal.class(추상 클래스)에서 sound( ) 메소드를 선언하게 되면 실체 클래스에서 통일된 이름의 메소드를 사용함으로써 실체 클래스마다 동일한 기능을 제각기 다른 이름을 가지는 것을 방지한다.
또한 추상 클래스에서 공통적인 필드, 메소드를 선정해주면 실체 클래스는 다 상속을 받기 때문에 각자 추가할 특성만 작성하면 되기에 더욱 간편합니다.
예제
출력 :
야옹 복실이 멍멍 Cute |
추상 클래스(Animal Method)의 추상 메소드(sound method)는 자식 메소드에서 사용을 강제한다. 일반 메소드(appearance method)는 사용을 해도 되고 안해도된다. (Dog class에서만 사용하였다.) |
반응형
'IT > JAVA' 카테고리의 다른 글
[JAVA/자바] interface (인터페이스) - 다중 상속 (0) | 2022.11.02 |
---|---|
[JAVA/자바] final - 변수, 메소드, 클래스에서 사용방법 (0) | 2022.11.02 |
[JAVA/자바] 배열 Array - new 연산자 배열생성 방법 (0) | 2022.11.02 |
[JAVA/자바] - Scanner 클래스 ( 사용법, next, nextLine) (0) | 2022.11.02 |
[JAVA/자바] 반복문 - for & while & do while (0) | 2022.11.02 |
댓글