반응형
250x250
Notice
Recent Posts
Recent Comments
Link
이롭게 현명하게
[JAVA] 자바 추상 클래스와 추상 메소드 본문
728x90
반응형
목차
추상 클래스
추상 클래스 상속
<정리>
public abstract class 클래스명{
// 필드
// 생성자
// 메소드
}
[추상 클래스]
추상(abstract) : 실체 간에 공통되는 특성을 추출한 것
추상 클래스(abstract class) : abstract로 선언된 클래스로 클래스들의 공통적인 특성을 추출해서 선언한 클래스
- 추상 클래스와 실체 클래스는 상속의 관계를 가지고 있다.
추상 클래스 : 부모, 실체 클래스 : 자식 으로 실체 클래스는 추상 클래스의 모든 특성을 물려받고 추가적인 특성을 가질 수 있다.
- 추상 메소드, 일반 메소드 둘 다 가질 수 있다.
추상 메소드(abstract method) : 선언 되어 있으나 구현되어 있지 않은 메소드, abstract로 선언,
추상 메소드는 서브 클래스에서 오버라이딩하여 구현해야한다.
추상 클래스는 실체 클래스의 공통되는 필드와 메소드를 추출해서 만들었기 때문에 객체를 직접 생성해서 사용할 수 없다.
즉, new 연산자를 사용해서 인스턴스를 생성시키지 못한다.
추상클래스는 새로운 실체 클래스를 만들기 위해 부모 클래스로만 사용된다.
<추상 클래스의 용도>
- 실체 클래스들의 공통된 필드와 메소드의 이름을 통일할 목적
- 실체 클래스를 작성할 때 시간절약
- 설계와 구현 분리
- 슈퍼 클래스에서는 개념 정의 : 서브 클래스마다 다른 구현이 필요한 메소드는 추상 메소드로 선언
- 각 서브 클래스에서 구체적 행위 구현 : 서브 클래스마다 목적에 맞게 추상 메소드 다르게 구현
- 계층적 상속 관계를 갖는 클래스 구조를 만들 때
//1. 추상 메소드를 포함하는 추상 클래스
abstract class Shape(){ // 추상 클래스 선언
public Shape(){}
public void paint(){draw();} // 일반메소드
abstract public void draw();// 추상 메소드
}
//2. 추상 메소드 없는 추상 클래스
abstract class MyComponent{ // 추상 클래스 선언
String name;
pulbic void load(String name){ // 일반 메소드만 가지는 경우
this.name = name;
}
}
[추상 클래스 상속]
- 추상 클래스의 단순 상속 : 추상 클래스를 상속받아, 추상 메소드를 구현하지 않으면 서브 클래스도 abstract로 선언해야 함
- 추상 클래스 구현 상속 : 서브 클래스에서 슈퍼 클래스의 추상 메소드 구현(오버라이딩), 서브 클래스는 추상 클래스여도 되고 일반 클래스여도 됨
잘못된 정보는 댓글에 남겨주시면 감사하겠습니다!😊
댓글과 좋아요는 큰 힘이 됩니다!
더보기
[ 참고자료 ]
728x90
반응형
'JAVA' 카테고리의 다른 글
[JAVA] 자바 인터페이스 (0) | 2023.05.02 |
---|---|
[JAVA] 자바 타입 변환 (0) | 2023.04.28 |
[JAVA] 자바 클래스 상속 (0) | 2023.04.27 |
[JAVA] 자바 상속 개념 (0) | 2023.04.26 |
[JAVA] 자바 접근 제한자 (0) | 2023.04.25 |
Comments