Java 추상 클래스 및 메서드 오버라이딩

Soozoo·2024년 6월 19일

JAVA

목록 보기
12/41

추상 클래스와 메서드

추상 클래스는 구체적으로 구현되지 않은 추상 메서드를 포함할 수 있는 클래스입니다. 이러한 추상 클래스는 객체를 직접 생성할 수 없으며, 상속을 통해서만 사용될 수 있습니다. 추상 메서드는 서브클래스에서 반드시 구현해야 합니다.

추상 클래스의 특징

추상 메서드 포함 가능: 추상 메서드는 메서드 선언만 있고 구현은 없는 메서드입니다. 하위 클래스는 반드시 이 추상 메서드를 구현해야 합니다.
객체 생성 불가: 추상 클래스는 인스턴스화할 수 없습니다. 즉, 직접 객체를 생성할 수 없습니다.
일반 메서드와 필드 포함 가능: 추상 클래스는 추상 메서드뿐만 아니라 일반 메서드와 필드도 가질 수 있습니다.
상속을 통해 사용: 추상 클래스는 상속을 통해 하위 클래스에서 구현된 형태로 사용됩니다.

code 예시:

package Abstract;

abstract class Shape{ //abstract Super class 
	double result = 0;
	public abstract double calc(); //추상 메소드
	public abstract void draw();
	
	public void show() {
		System.out.println("Shape Super Class");
	}
} //shape end

class Circle extends Shape{
	double r = 5.0;
	
	@Override
	public double calc() {
		result = r * r + Math.PI;
		return result;
	}

	@Override
	public void draw() {
		System.out.println("원의 넓이: "  + calc() + "인 원을 그렸습니다.");
	}
 } //Circle end 

class Triangle extends Shape{
	
	double h = 5.0;
	double w = 3.0;
	
	public double calc(){
		result = (h * w) / 2;
		return result;
	}
	
	public void draw() {
		System.out.println("삼각형의 넓이: " + calc() + "인 삼각형을 그렸습니다.");
	}
}//Triangle end


public class MainEntry {
	public static void main(String[] args) {
		//		Shape sh = new Shape(); // 자체적으로 객체 생성 할 수 없다.
		
		Triangle tr = new Triangle();
		tr.draw();
		
		Circle cr = new Circle();
		cr.draw();
	}

}

실행 결과:

삼각형의 넓이: 7.5인 삼각형을 그렸습니다.
원의 넓이: 28.141592653589793인 원을 그렸습니다.
profile
넙-죽

0개의 댓글