⚡ 추상 클래스

sonjh919·2023년 10월 18일
0

Java

목록 보기
24/28
post-thumbnail

📌 추상 메소드(abstract method)

  • 선언은 되어 있으나 코드가 구현되어 있지 않는, 즉 껍데기만 있는 메소드이다.
  • abstract 키워드와 함께 원형만 작성하고 코드는 작성하지 않는다.
public abstract String getName();
public abstract void setName(String s);

public abstract String getName(){ return name; } // 컴파일 오류

📌 추상 클래스(abstract class)

추상 클래스가 되는 경우는 다음 2가지로서, 모두 abstract 키워드로 선언해야 한다.
1. 추상 메소드를 포함하는 클래스 → 추상 메소드가 있으면 반드시 추상 클래스로 선언되어야 한다.

abstract class A{
	abstract public void b();
}
  1. 추상 메소드가 없지만 abstract로 선언한 클래스
abstract class A{
	public String b(){ return name; };
}

🌈 추상 클래스의 특징

  • 추상 클래스는 객체를 생성할 수 없다.
  • 추상 클래스를 단순히 상속받는 서브 클래스는 추상 클래스가 된다.

🌈 추상 클래스의 구현과 목적

  • 추상 클래스의 구현이란, 부모 클래스에 선언된 모든 추상 메소드를 자식 클래스에서 오버라이딩하여 실행 가능한 코드로 구현하는 것
  • 추상 클래스는 추상 메소드를 통해 서브 클래스가 구현할 메소드를 명료하게 알려주는 인터페이스 역할을 한다.
  • 서브 클래스는 추상 메소드를 목적에 맞게 구현하는 다형성을 실현할 수 있다.

    프로그램의 설계와 구현을 분리할 수 있다.
    계층적 상속 관계를 가지는 클래스들의 구조를 만들 때 적합하다.

abstract class Shape{
	public abstract void draw();
}

// 상속받아 구현
class Line extends Shape{
	@Override
    public void draw(){
    	System.out.println("Line")
    }
    
class Rect extends Shape{
	@Override
    public void draw(){
    	System.out.println("Rect")
    }
    
class Circle extends Shape{
	@Override
    public void draw(){
    	System.out.println("Circle")
    }

0개의 댓글