반응형
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;
}
}
반응형