본문 바로가기
Language/java

java 기초 10: 추상 클래스(abstract class)

by S2채닝S2 2023. 1. 5.

추상 클래스

  - 추상, 추상적: 구체성이 없는 일반화된 것

  - 추상 클래스: 구체적이지 않고 일반화된 클래스

  - abstract class라고 함

  - 실체 클래스는 concrete 클래스라고 함

  - 공통적인 기능을 부모 클래스로 정의해서 (자식클래스에서)상속받되,

    일부 공통 기능은 자식 클래스에서 구현하도록 강제하는 것

 

 

추상 클래스의 필요성

  - 자식 클래스들의 공통 기능이지만 부모 클래스의 시점에서 공통 기능의 구체적인 내용을 구현할 수 없을 때 사용한다

 

추상 클래스의 특징

  - 구체적이지 않고 일반화된 클래스

  - 객체들 간의 공통적인 기능을 정의한 클래스

  - 기능의 구체적인 내용 구현은 자식클래스에게 일임

  - 추상클래스는 단독으로 인스턴스를 만들 수 없음

  - 상속을 통해 자식 클래스에서 인스턴스를 생성

 

추상 클래스 선언

  - 클래스 선언부에 abstract 키워드 사용

  - 추상 클래스 멤버: 필드, 생성자, 메소드

  - 추상 메소드: 공통적인 기능을 정의하고, 구체적인 기능 구현은 자식 클래스에게 일임한 메소드

                          실행블록({}) 없이 세미콜론(;)으로만 문장 완성

// 추상클래스, 단독으로 인스턴스 생성 불가
public abstract class Student{
	private final String name;
    
    Student(String name){
    	this.name = name;
    }
    
    public String getName(){
    	return this.name;
    }
    
    //추상 메소드, 실행블록 없음
    abstract void study(String subject);
}

 

추상클래스의 상속 및 재정의

public class JavaStudent extends Student{
	JavaStudent(Strnig name){
    	super(name);
    }
    
    //추상 메소드 재정의(오버라이딩)
    @Override
    void study(String subject){
    	System.out.println("자바 입문 강의");
        System.out.println(subject + "를 공부합니다");
    }
}

최근댓글

최근글

skin by © 2024 ttuttak