본문 바로가기

JAVA/Information

[JAVA] 자바 추상 클래스(abstract method)?

 

추상클래스(abstract method)

- 객체를 생성할 수 있는 클래스를 실체 클래스라고 한다면, 이 클래스들의 공통적인 필드나 메소드를 추출해서 선언한 클래스를 추상 클래스라고 합니다.

- 추상 클래스는 실체 클래스의 부모 역할을 합니다.

- 자식 클래스에서 반드시 오버라이딩해야만 사용할 수 있는 메소드입니다.

 

 

1. extends 뒤에만 올 수 있습니다.

Class Dog extends Animal {
...
}

 

2. new연산자를 사용해서 객체를 직접 생성할 수 없습니다.

Animal animal = new Animal(); //XX

 

3. new연산자를 이용해서 객체를 직접 만들지 못하고 상속을 통해 자식 클래스만 만들 수 있습니다.

pulic abstract class 클래스명 {
    //필드
    //생성자
    //메소드
}

 

4. 추상 클래스도 필드, 메소드를 선언할 수 있습니다.

자식 객체가 생성될 때 super()로 추상 클래스의 생성자가 호출되기 때문에 생성자도 반드시 있어야 합니다.

public abstract class Bottle {
	//필드 선언
    	String water;
        
    //생성자 선언
    Bottle(String water) {
    	this.water = water;
    }
    
    //메소드 선언
    void open() {
     System.out.println("뚜껑을 엽니다.");
    }
    void close() {
     System.out.println("뚜겅을 닫습니다.");
    }
  }
public class WaterBottle wxtends Bottle {
	//생성자 선언
    SaterBottle(String water) {
     //Water 생성자 호출
     super(water);
    }
    
    
    //메소드 선ㄴ언
    void drink() {
     System.out.println("물을 마시다.");
    }
 }
반응형