반응형
추상메소드 (abstract method)
- 추상메소드란 선언은 되어 있으나 코드가 구현되어 있지 않은 메소드이다.
- 추상메소드는 abstract키워드를 선언하는 선언부만 존재하고, 구현부는 작성하지 않고 사용한다.
- 작성되어 있지 않은 구현부는 자식클래스에서 오버라이딩하여 사용한다.
추상클래스 (abstract class)
- 추상메소드를 가지고 있으면 반드시 추상클래스로 선언해야 한다.
- 추상클래스 선언은 abstract키워드로 한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
// [추상클래스]
// 객체화를 하지못하게 "강제"
abstract class Shape{ // 객체생성을 위해서 사용xxx -> 클래스들을 정의 O
int a; // 점,선
abstract void draw();
void showInfo() {
System.out.println("모양: "+this.a);
}
Shape(int a){ // 생성자 정의가능함! -> 자식 생성자에서 호출함!!
this.a=a;
}
}
class Circle extends Shape{
int radius;
Circle(int a, int radius){
super(a);
this.radius=radius;
}
@Override
void draw() {
System.out.println("추상메서드에 의해 오버라이딩 강제");
}
}
public class Test02 {
public static void main(String[] args) {
//Shape s=new Shape();
// 추상클래스 : 객체화,인스턴스화 xxx
Circle c=new Circle(1,20);
c.draw();
}
}
|
cs |
추상 클래스는 객체를 생성할 수 없다.
- 추상메소드를 가진 추상클래스는 동작이 정의되어 있지 않으므로 인스턴스를 생성할 수 없다.
- 추상클래스는 먼저 상속을 통해 자식클래스를 만들고 자식클래스에서 추상메소드를 오버라이딩해야 인스턴스를 생성할 수 있다.
- 추상클래스의 객체를 생성하는 코드는 컴파일 오류가 발생한다.
추상클래스 상속
- 추상클래스를 상속받는 자식클래스는 추상클래스가 된다.
- 추상클래스의 추상메소드를 그대로 상속받기 때문에 오버라이딩을 하지 않으면 자식클래스에 abstract를 붙여 추상클래스임을 명시해야 컴파일 오류가 발생하지 않는다.
- 추상메소드가 포함된 추상클래스를 상속받은 자식클래스는 추상메소드를 오버라이딩 해야만 인스턴스를 생성할 수 있다.
추상클래스 구현 목적
- 추상메소드가 포함된 클래스를 상속받는 자식클래스가 반드시 오버라이딩하여 구현하기 위함이다.
- 추상클래스는 추상메소드를 통해 자식클래스가 구현할 메소드를 명료하게 알려주는 인터페이스 역할을 한다.
- 자식클래스는 추상메소드를 목적에 맞게 구현하는 다형성을 실현한다.
반응형
'JAVA' 카테고리의 다른 글
[JAVA] 예외 처리 (try, catch, finally) (0) | 2022.06.27 |
---|---|
[JAVA] 인터페이스 Interface (0) | 2022.06.27 |
[JAVA] 카드 사용 프로그램 (Equals() 메소드, instanceof 연산자) (0) | 2022.06.26 |
[JAVA] 접근제어자 private (Getter, Setter 메소드) (0) | 2022.06.26 |
[JAVA] 모래성 쌓기 게임 (Static) (0) | 2022.06.26 |