java 학습일기 day10 - 추상클래스

이건구·2023년 9월 9일
0

java학습일기

목록 보기
8/13

1. 추상클래스란.

2. 추상클래스 사용법.

1. 추상클래스란.

추상클래스란 상속해준 자식클래스에게 반드시 메서드를 만들어 사용하게 유도하는 클래스이다.

2. 추상클래스 사용법.

추상클래스를 사용하려면 class 앞에 abstract를 붙이고 상속해줄 클래스들에 공통적으로 사용할 메서드를 만들면된다.

추상클래스에는 일반메서드와 추상메서드를 만들수있는데, 추상메서드는 메서드명 앞에 abstract를 붙이고 만들고, 상속받은 자식클래스들은 반드시 추상메서드를 오버라이딩해야한다. 아래코드를 보고 이해해보자.

public class AbstractExam {
    public static void main(String[] args) {
        Dog d1 = new Dog();
        d1.breath();
        d1.sound();

        Cat c1 = new Cat();
        c1.breath();
        c1.sound();
    }
}
abstract class Animal {
    String name = "동물";
    void breath() {
        System.out.printf("%s가 숨을쉰다.\n", name);
    }
    public abstract void sound();
}
class Dog extends Animal {
    void breath() {
    }
    Dog() {
        this.name = "강아지";
    }
    public void sound() {
        System.out.printf("%s가 멍멍소리를 냅니다\n", name);
    }
}
class Cat extends Animal {
    Cat() {
        this.name = "고양이";
    }
    void breath() {
    }
    public void sound() {
        System.out.printf("%s가 야~옹소리를 냅니다\n", name);
    }
}

위 코드는 Animal이라는 추상클래스를 만들고 그 안에 String타입의 name이라는 변수와 breath라는 일반메서드, sound라는 추상메서드를 만들었다. 추상메서드는 public를 만들어야한다.

그리고 Animal을 상속받은 Dog와 Cat클래스를 만들고 각각 생성자도 만들어놓는다.

추상메서드인 sound는 반드시 상속받은 자식클래스에서는 오버라이딩해야한다. 그리고 앞에는 public을 붙여줘야한다.

이게 그냥 클래스의 상속과 뭐가 다르냐고 묻는다면 이렇게 추상클래스를 만들어 놓으면 자식클래스에게 메서드의 오버라이딩을 강제하기 때문에 기준만 잘 선정한다면 규격에 맞는 여러가지 클래스들을 만들수있다.

0개의 댓글