템플릿 메서드
📌 템플릿 메서드
: 추상 메서드나 구현된 메서드를 활용해 전체 기능의 흐름을 정의하는 메서드.
💡 final
- final 변수 : 값이 변경될 수 없음.(상수)
- final 메서드 : 하위 클래스에서 오버라이딩 할 수 없음.
- final 클래스 : 다른 클래스가 상속할 수 없음.
📄 Animal.java
package prac_template;
public abstract class Animal {
public abstract void move();
public abstract void birth();
public void eat() {
System.out.println("eat");
}
public void sleep() {
System.out.println("sleep");
}
public final void life() { // 템플릿 메서드. final : 하위 클래스에서 재정의 불가능.
birth();
eat();
move();
sleep();
}
}
📄 Dog.java
package prac_template;
public class Dog extends Animal {
@Override
public void move() {
System.out.println("run");
}
@Override
public void birth() {
System.out.println("breed");
}
}
📄 Fish.java
package prac_template;
public class Fish extends Animal {
@Override
public void move() {
System.out.println("swim");
}
@Override
public void birth() {
System.out.println("spawn");
}
}
📄 AnimalTest.java
package prac_template;
public class AnimalTest {
public static void main(String[] args) {
Animal dog = new Dog();
dog.life();
System.out.println();
Animal fish = new Fish();
fish.life();
}
}
// breed
// eat
// run
// sleep
//
// spawn
// eat
// swim
// sleep
'Java > Java' 카테고리의 다른 글
[Java] 자바의 메모리 모델 (0) | 2022.10.17 |
---|---|
[Java] 인터페이스(interface) (1) | 2022.10.15 |
[Java] 추상 클래스(Abstract Class) (0) | 2022.10.15 |
[Java] 상속 (0) | 2022.10.14 |
[Java] ArrayList (0) | 2022.10.14 |
댓글