Java/Java

자바[Java] 추상클래스(abstract)란? 개념정리

백엔드 신입사원( soft 5.10 입사) 2021. 10. 14. 11:23
반응형

추상클래스 ( abstract class )

  추상클래스는 아무 클래스도 상속 받지 않고, 아무 인터페이스도 구현하지 않은 클래스입니다. (POJO #Plain Old Java Object.) 따라서 추상클래스는 실체들 간에 공통되는 특성을 추출합니다. 추상클래스를 예를들자면 LG, 현대, 삼성간에 공통되는 특성은 회사가 됩니다. 

 

추상클래스는 단독으로 만들수 없습니다. 추상클래스는 실체 클래스의 공통된 필드와 메소드의 이름을 통합할 목적으로 사용됩니다 주로 실체 클래스를 다루는 설계자가 여러 사람일 경우, 실체 클래스마다 필드와 메소드가 제각기 다른 이름을 가질수 있기에 추상클래스를 만들게 됩니다.

 

실체 클래스의 작성 시간 절약

  실체 클래스는 추가적인 필드와 메소드만 선언을하며, 실체 ㅋ클래스를 설계 규격으로 만들고자 할때 실체 클래스가 가져야 할 필드와 메소드를 추상 클래스에 미리 정의하며 실체 클래스는 추상 클래스를 무조건 상속 받아 작성하도록 만들수 있습니다. 추상 클래스 선언은 New 연산자로 객체를 생성하지 못하며, 상속을 통해 하위 클래스를 통해 생성이 가능합니다. 아래 코드는 예시 코드입니다.

예시.  
public abstract class test {  
public abstract void sound();  
}

public class test1 extends test{  
  
@Override // 오버라이딩  
public void sound(){  
System.out.println("10");  
}  
}

public class testexample {  
public static void main(String [] args){  
test1 t = new test1();  
t.sound();  
  
// 변수자동 타입변환  
test atest =null;  
atest = new test1();  
atest.sound();  
  
// 매개변수의 자동 타입변환  
abcd(new  test());  
}  
public static void abcd(test atest){  
abcd.sound();  
}  
}
반응형