JAVA

JAVA - 추상 클래스(Abstract Class)

로픽 2016. 6. 6. 21:25
300x250

JAVA - 추상 클래스(Abstract Class)


추상(abstract)

 - 실체들 간에 공통되고 중요한 특성을 추출하는 것

  ex. 새, 곤충, 물고기 -> 동물(추상)


추상 클래스(abstract class)

 - 실체 클래스들의 공통되는 필드와 메소드 정의한 클래스    (실체 클래스 :  객체를 만들어 사용할 수 있는 클래스)

 - 추상 클래스는 실체 클래스의 부모 클래스 역할 (단독 객체 X, 즉 new x)


추상 클래스의 용도

 - 실체 클래스의 공통된 필드와 메소드의 이름 통일할 목적

   ** 프로그래머 마다 다른 설정을 통일하기 위해서


 - 실체 클래스를 작성할 때 시간 절약

   ** 실체 클래스는 추가적인 필드와 메소드만 선언


 - 실체 클래스 설계 규격을 만들고자 할 때

   ** 실체 클래스가 가져야 할 필드와 메소드를 추상 클래스에 미리 정의

   ** 실체 클래스는 추상 클래스를 무조건 상속 받아 작성



추상 클래스 선언

 - 클래스 선언에 abstract 키워드 사용

    ** new 연산자로 객체 생성하지 못하고 상속 통해 자식 클래스만 생성 가능(직접적인 new 불가능)


public abstract class 클래스 {

//필드

//생성자

//메소드

}


추상 메소드와 오버라이딩(재정의)

 - 메소드 이름은 동일하지만, 실행 내용이 실체 클래스마다 다른 메소드

  ex. 동물은 소리를 낸다(추상메소드)  하지만 실체 동물들의 소리는 제각기 다르다


 - 구현 방법

   ** 추상 클래스에는 메소드의 선언부만 작성(추상 메소드)

     [public | protected] abstract 리턴타입 메소드명(매개변수 .....);

   ** 실체 클래스에서 메소드의 실행 내용 작성(오버라이딩(Overriding))




--- 추상 메소드 ---


추상 클래스



--- 상속받은 서브 클래스 Dog ---



java



---상속받은 서브 클래스 Cat ---



자바



--- 메인 메소드 ---



자바


반응형