JAVA :: 추상 클래스

smi·2021년 1월 22일
2

JAVA (자바)

목록 보기
4/62
post-thumbnail

📝 추상 클래스

💬 여러 (실제)클래스의 공통된 멤버를 추출해서 선언한 것이다.

➕ 때문에, 추상 클래스는 실제 클래스와 상속 관계를 가진다.


💡 추상 메소드

💬 abstract 키워드로 선언되고, 코드는 작성되지 않은 메소드이다.

abstract 리턴타입 메소드이름(매개변수, ...);

💬 상속을 통해, 자식 클래스가 재정의하여 코드를 작성한다.

👉 예시

⚠ 실제 클래스마다 매개변수가 다르다면, 추상 클래스에서가 아닌 각각의 실제 클래스에서 매개변수를 재정의하기 때문에, 추상 클래스의 매개변수를 정하지 않을 때도 있다.

💡 추상 클래스 선언

1. 추상 메소드를 한 개 이상 가지고 abstract로 선언된 클래스

⚠ 추상 메소드를 가지고 있으면 반드시 추상 클래스로 선언되어야 한다.

2. 추상 메소드가 없고, abstract로 선언된 클래스


💡 추상 클래스 특징

💬 추상 클래스에도 필드, 생성자, 메소드를 선언할 수 있다.

💬 추상 클래스에는 실행 코드가 없는 추상 메소드가 있을 수 있기 때문에, 추상 클래스의 객체를 생성할 수 없다.

⚠ 상속을 통해 자식 객체가 생성될 때 객체화 된다. (자식 생성자에서 super(...) 형태로 추상 클래스의 생성자 호출가능)
👉 예시
Component p; //추상 클래스의 객체 선언
p = new Component(); //컴파일 오류. 추상 클래스의 객체 생성 불가

💬 추상 메소드를 가진 추상 클래스를 상속받는 클래스는 자동으로 추상 클래스가 되므로 abstract 키워드를 명시해야 한다.


💡 추상 클래스 구현

💬 자식 클래스에서 부모 클래스의 모든 추상 메소드를 오버라이딩하는 것이다.

⚠ 추상 클래스를 구현한 하위 클래스는 정상 클래스이므로 객체를 생성할 수 있다.
👉 예시

Reference

명품 자바 에센셜(2014, 황기태)

profile
공부한 거 올려요 :)

0개의 댓글