abstract class Class {
void startClass() {
EnterClassRoom();
study();
leaveClassRoom();
}
void EnterClassRoom() {
System.out.println("반에 입장한다.");
}
public abstract void study();
void leaveClassRoom() {
System.out.println("반을 떠난다.");
}
}
class MathClass extends Class {
@Override
public void study() {
System.out.println("수학 공부를 한다.");
}
}
class EnglishClass extends Class {
@Override
public void study() {
System.out.println("영어 공부를 한다.");
}
}
public class Main {
public static void main(String[] args) {
Class mathClass = new MathClass();
Class englishClass = new EnglishClass();
mathClass.startClass();
englishClass.startClass();
}
}
장점
단점