한 걸음 두 걸음

자바 Java ] 추상클래스 abstract class / 추상 메소드 abstract method 본문

Language/Java

자바 Java ] 추상클래스 abstract class / 추상 메소드 abstract method

언제나 변함없이 2019. 11. 20. 16:30
반응형

추상클래스

abstract 키워드를 활용한 클래스, 최소한 하나 이상의 abstract메소드를 갖는 클래스를 말합니다.
(추상메소드가 아닌 메소드도 가질 수 있습니다.)

public abstract class Car {

}; //세미콜론을 붙여주어야합니다. 

이는 객체 생성이 불가능합니다.

추상메소드

abstract 키워드를 활용한 메소드로, 바디에 구현하는 코드가 없습니다.

public abstract class Car {
    public abstract void move();       //구현되는 코드가 없습니다.
}

추상클래스는 아직 완성되지 않은 클래스이기 때문에 추상클래스로 객체를 만들 수 없고, 추상 클래스를 상속받아서 만든 클래스의 객체를 만들 수 있습니다. 상속받은 클래스(concrete class)에서는 추상클래스에 적힌 추상메소드를 재정의하여 사용해야합니다.

콘크리트 클래스에서는 추상클래스에서 정의한 모든 추상 메소드를 재정의해서 사용해야합니다.

예시

abstract class Shape{
    public abstact void draw();
    public abstact void print(){
        System.out.println("일반함수도 있음");
    }
}

public class Circle extends Shape{

    public void draw(){
        System.out.println("원");
    }
}

final Class

이는 상속이 불가능한 클래스입니다. 자식 클래스를 만들 수 없습니다.(종단클래스)

class final A{
}
반응형