Java
[Java] 추상 메소드를 포함하는 추상 클래스
junga
2022. 9. 12. 13:59
추상 메소드(abstract method)
- 추상메소드란 자식클래스에서 반드시 오버라이딩해야만 사용할 수 있는 메소드를 의미한다.
- 추상메소드는 선언부만이 존재하며, 구현부는 없다. 이 구현부를 자식클래스에서 오버라이딩하여 사용한다.
abstract 반환타입 메소드이름();
추상 클래스(abstract class)
- 하나 이상의 추상 메소드를 포함하는 클래스를 추상클래스라고 한다.
- 추상 클래스는 동작이 정의되어 있지 않은 추상메소드를 포함하고 있으므로, 인스턴스를 생성할 수 없다.
- 자식클래스에서 추상클래스의 모든 추상메소드를 오버라이딩하고 나서야 자식클래스의 인스턴스를 생성할 수 있다.
abstract class 클래스이름{
abstract 반환타입 메소드이름();
}
// 롤 챔피언 별 스킬을 출력해 보자.
abstract class Skill{
abstract void q();
abstract void w();
abstract void e();
abstract void r();
}
// 티모 스킬
class Teemo extends Skill{
void q(){System.out.println("실명 다트");}
void w(){System.out.println("신속한 이동");}
void e(){System.out.println("맹독 다트");}
void r(){System.out.println("유독성 함정");}
}
// 판테온 스킬
class Pantheon extends Skill{
void q(){System.out.println("혜성의 창");}
void w(){System.out.println("방호의 도약");}
void e(){System.out.println("방패 돌격");}
void r(){System.out.println("거대 유성");}
}
public class Main{
public static void main(String[] args){
Teemo teemo = new Teemo();
Pantheon pantheon = new Pantheon();
teemo.q(); // 실명 다트
teemo.w(); // 신속한 이동
pantheon.q(); // 혜성의 창
pantheon.w(); // 방호의 도약
}
}