문제
abstract class 비행아이템 {
abstract void 작동(String 사용자);
}
class 날개로나는비행아이템 extends 비행아이템 {
void 작동(String 사용자) {
System.out.println(사용자 + " : 날개로 날아갑니다.");
}
}
class 못나는비행아이템 extends 비행아이템 {
void 작동(String 사용자) {
System.out.println(사용자 + " : 저는 날 수 없어요. ㅜㅠ");
}
}
풀이_1
abstract class 비행아이템 {
String text ="";
void 작동(String 사용자){
System.out.println(사용자 +text);
}
}
class 날개로나는비행아이템 extends 비행아이템 {
날개로나는비행아이템(){
text = " : 날개로 날아갑니다.";
}
}
class 못나는비행아이템 extends 비행아이템 {
못나는비행아이템(){
text = " : 저는 날 수 없어요. ㅜㅠ";
}
}
풀이_2
abstract class 비행아이템 {
static String divisorStr1 = " : ";
abstract void 작동(String 사용자);
}
class 날개로나는비행아이템 extends 비행아이템 {
void 작동(String 사용자) {
String header = 사용자 + divisorStr1;
System.out.println(header + "날개로 날아갑니다.");
}
}
class 못나는비행아이템 extends 비행아이템 {
void 작동(String 사용자) {
String header = 사용자 + divisorStr1;
System.out.println(header + "날개로 날아갑니다.");
}
}
풀이_3
abstract class 비행아이템 {
static String divisorStr1 = " : ";
abstract void 작동(String 사용자);
String getHeaderForPrint(String 사용자) {
return 사용자 + divisorStr1;
}
}
class 날개로나는비행아이템 extends 비행아이템 {
void 작동(String 사용자) {
System.out.println(getHeaderForPrint(사용자) + "날개로 날아갑니다.");
}
}
class 못나는비행아이템 extends 비행아이템 {
void 작동(String 사용자) {
System.out.println(getHeaderForPrint(사용자) + "날개로 날아갑니다.");
}
}
풀이_4
abstract class 비행아이템 {
void 작동(String 사용자) {
System.out.println(사용자 + " : " + get작동메세지());
}
abstract String get작동메세지();
}
class 날개로나는비행아이템 extends 비행아이템 {
String get작동메세지() {
return "날개로 날아 갑니다.";
}
}
class 못나는비행아이템 extends 비행아이템 {
String get작동메세지() {
return "저는 못 날아요 ㅠㅠ";
}
}
class 로켓비행아이템 extends 비행아이템 {
String get작동메세지() {
return "로켓파워로 날아갑니다!!!";
}
}