class Main {
public static void main(String[] args) {
전사타입A a전사타입A = new 전사타입A();
a전사타입A.공격();
전사타입B a전사타입B = new 전사타입B();
a전사타입B.공격();
}
}
class 전사 {
}
class 전사타입A extends 전사 {
void 공격() {
new 칼().작동();
}
}
class 전사타입B extends 전사 {
void 공격() {
new 칼().작동();
}
}
class 칼 {
void 작동() {
System.out.println("칼로 공격");
}
}
class 활 {
void 작동() {
System.out.println("활로 공격");
}
}
캐릭터 - 직업(전사) - 무기(활,칼)
class Main {
public static void main(String[] args) {
전사타입A a전사타입A = new 전사타입A();
a전사타입A.공격();
전사타입B a전사타입B = new 전사타입B();
a전사타입B.공격();
}
}
abstract class 전사 {
무기 a무기;
void 공격() {
a무기.작동();
}
}
class 전사타입A extends 전사 {
전사타입A (){
a무기 = new 활();
}
}
class 전사타입B extends 전사 {
전사타입B (){
a무기 = new 칼();
}
}
abstract class 무기{
String 무기;
무기 (){
무기 ="";
}
void 작동(){
System.out.println(무기+"로 공격");
}
}
class 칼 extends 무기{
칼 (){
무기 ="칼";
}
}
class 활 extends 무기{
활 (){
무기 ="활";
}
}