프로그래밍 문법/java

abstract 클래스

씩씩한 IT블로그 2023. 5. 27. 16:46
반응형

abstract 클래스란?

- 상속받는 자식클래스가 반드시 존재해야 하며 하나이상의 abstract 함수가 존재해야 한다.

- abstract함수는 부모클래스에서 정의만 하고, 구체적인 로직 구현은 자식클래스에서 한다.

 

예시

1. 부모클래스(abstract 클래스)

- flyable이라는 abstract 함수를 가진다

package com.fastcampus.de.java.clip11_6;

public abstract class Bird {
    private int x,y,z;

    void fly(int x, int y, int z) {
        System.out.println("이동");
        this.x = x;
        this.y = y;
        this.z = z;
        if (flyable(z))  {
            this.z = z;
        } else{
            System.out.println("그 높이로는날 수 없음");
        }

        printLocation();
    }

    public void printLocation() {
        System.out.println("현재 위치 :" + x + " " + y + " " + z);
    }

    abstract boolean flyable(int z); //abstract 함수, 상속받는 자식클래스에서 정의해야
}

 

2. 자식클래스 1 : Pigeon

package com.fastcampus.de.java.clip11_6;

public class Pigeon extends Bird {
    @Override
    boolean flyable(int z) {
        return z<10000;
    }

    public static void main(String[] args) {
        Bird pigeon = new Pigeon();

        System.out.println("비둘기");
        pigeon.fly(1,2,3);

    }

}

 

2. 자식클래스 2 : Peacock

package com.fastcampus.de.java.clip11_6;

public class Peacock extends Bird{
    @Override
    boolean flyable(int z) {
        return false;
    }
}
반응형