추상 클래스
2020. 6. 25. 10:49ㆍ정리/JAVA
추상 클래스란?
하위 클래스에서 구현될 추상적인 기능이 포함된 클래스이다.
즉 추상 클래스에서는 메소드 시그니처만을 제공하고 실제 구현은 하위 클래스에서 이루어진다.
추상 클래스의 특징으로는
- 추상 클래스이지만 추상 메소드를 가지지 않을 수 있다.
- 추상 메소드를 하나라도 가진 경우 해당 클래스는 무조건 추상 클래스로 선언해야 한다.
- 그 자체로 인스턴스 생성이 불가능하다.
- 상속을 통해 사용 가능하며, 다중 상속은 불가능하다.
- 추상 메소드를 제외한 나머지 접근 제어자 및 필드는 일반적인 클래스와 동일하게 사용할 수 있다.
- 클래스 앞에 abstract 키워드를 붙여서 정의한다.
가 있다.
다음으로 추상 클래스를 예제를 통해 이해해보도록 했다.
추상 클래스 문법
public abstract class A {
public String fieldA = "A class - fieldA";
public String fieldB = "A class - fieldB";
public void normalMethod() {
System.out.println("일반 메소드");
}
public abstract void abstractMethod();
}
public class Aextends extends A {
public String fieldA = "Aextends class - fieldA";
@Override
public void abstractMethod() {
System.out.println("추상 메소드 오버라이딩");
}
}
public class Test {
public static void main(String[] args) {
Aextends a = new Aextends();
System.out.println(a.fieldA);
System.out.println(a.fieldB);
a.normalMethod();
a.abstractMethod();
}
}
간단히 추상 클래스 A, 추상 클래스를 상속한 클래스 Aextends 가 있다고 할 때
Test라는 클래스로 테스트를 하면
Aextends class - fieldA
A class - fieldB
일반 메소드
추상 메소드 오버라이딩
다음과 같은 출력을 확인할 수 있다.
이를 통해 추상 클래스는 일반적인 상속 관계의 클래스와 유사하며, 필요할 경우 특정 메소드를 추상 메소드로 만들어 이 메소드만을 하위 클래스에서 새롭게 정의해서 사용할 수 있도록 하는 역할이라는 것을 확인할 수 있었다.
추상화의 경우 인터페이스와 유사하기 때문에 간단히 문법에 대해서만 정리했고,
나머지 내용은 인터페이스와 추상화의 공통점 / 차이점을 알아볼 때에 조금 더 자세히 정리할 생각이다.
해당 글은 개인이 공부하면서 정리한 글이기 때문에 정확하지 않은 내용이 있을 수 있습니다.
'정리 > JAVA' 카테고리의 다른 글
객체 지향 설계 5원칙 - SOLID (0) | 2020.06.29 |
---|---|
인터페이스와 추상클래스 (0) | 2020.06.26 |
인터페이스 (0) | 2020.06.02 |
다형성 (0) | 2020.05.27 |
상속 (0) | 2020.05.25 |