티스토리 뷰
(2026/3/8 수정)
이 글은 너무 초짜때 써서 공부하기에는 적절하지 않다고 생각한다.
따라서 아래 포스팅을 참고하길 바란다.
https://kodong8774.tistory.com/117
자바 - 추상 클래스 개념 정리
자바에서, 추상 클래스를 언제 사용하는지는 체스 게임을 만들면서 공부를 해놓고, 이후, 제대로 추상 클래스, super키워드를 활용해본적이 없는 것 같아 오늘 혼자서 추상클래스, super 키워드로
kodong8774.tistory.com
-------------------------------------------------------------------------------------
자바의 인터페이스에 대해서 공부해보았으니, 자바의 추상 클래스에 대해서도 공부해보자.
일단 간단한 예제를 만들어보았다 ( 현재 체스 게임을 만들기 때문에 클래스 이름을 체스관련 단어로 했다 ㅋㅋ)
일단 이 예제를 통해서 기본적인 추상 클래스의 개념을 익혀보자.
abstract class ChessPiece {
public Integer x = 10;
abstract public void sayHi();
}
abstract class King extends ChessPiece {
@Override
public void sayHi() {
System.out.println("sayHi 구현함 !");
System.out.println(x);
}
}
public class Main {
public static void main(String[] args) {
King king = new King() {};
king.sayHi();
}
}
-------------------
// (결과)
// sayHi 구현함 !
// 10
■ 선언 방법 → abstract 키워드사용!!
일단 추상클래스를 선언할때는 abstract 키워드를 사용한다.
("자식 클래스를 이용하여 꼭 '구현'하세요!" 라는 의미)
또 추상 클래스의 생성자를 바로 이용하여 객체를 생성할 수 없기 때문에, 자식 클래스를 이용하여 객체를 생성해야한다.
( 물론 추상 클래스에도 생성자를 생성하여 사용할 수 있다고는 하지만, 다음 포스팅이나 다뤄보겠다 )
■ 추상 클래스의 멤버들
▶ 간단하게 말하자면, 일반 클래스랑 똑같이 접근제어자/제한자 선택가능(public, private, static, final 모두 가능하다는 의미)하다.
▶ 단, abstract 메서드는 private, static, final 불가하다. 이유는 간단하다. 자식 클래스로 구현을 하기 위함이다.
------------------------
이번 글은 여기까지.
다음 포스팅에서 봅시다.....
'Java' 카테고리의 다른 글
| 자바 - super 키워드 (0) | 2025.09.10 |
|---|---|
| 자바 - 변수타입 vs 실제 객체타입 (0) | 2025.09.10 |
| 자바 - 인터페이스 좀 더 자세히 이해하기 (0) | 2025.09.09 |
| 자바 - 프로그램 죽이기 ( System.exit(n) 매서드 ) (0) | 2025.09.08 |
| 자바 - 자바 코드를 실행할 때, jvm, javac는 각각 뭘까? (0) | 2025.09.08 |