상속을 사용하지 않을 때
public class Main {
public static void main(String[] args) {
오리 a오리 = new 오리();
a오리.날다();
// 출력 : 오리가 날개로 날아갑니다.
흰오리 a흰오리 = new 흰오리();
a흰오리.날다();
// 출력 : 오리가 날개로 날아갑니다.
}
}
class 오리 {
void 날다() {
System.out.println("오리가 날개로 날아갑니다.");
}
}
class 흰오리 {
void 날다() {
System.out.println("오리가 날개로 날아갑니다.");
}
}
상속을 사용할 때
public class Main {
public static void main(String[] args) {
오리 a오리 = new 오리();
a오리.날다();
// 출력 : 오리가 날개로 날아갑니다.
흰오리 a흰오리 = new 흰오리();
a흰오리.날다();
// 출력 : 오리가 날개로 날아갑니다.
}
}
class 오리 {
void 날다() {
System.out.println("오리가 날개로 날아갑니다.");
}
}
class 흰오리 extends 오리 {
}
public class Main {
public static void main(String[] args) {
로봇오리 a로봇오리 = new 로봇오리();
a로봇오리.날다();
// 출력 : 저는 못 날아요 ㅠㅠ
a로봇오리.수영하다();
// 출력 : 물갈퀴로 수영합니다.
}
}
class 오리 {
int fly = 1;
int swim = 1;
void 날다() {
if (fly == 1) {
System.out.println("오리가 날개로 날아갑니다.");
} else {
System.out.println("저는 못 날아요 ㅠㅠ");
}
}
void 수영하다() {
if (swim == 1) {
System.out.println("물갈퀴로 수영합니다.");
} else {
System.out.println("물에 둥둥 뜹니다.");
}
}
}
class 고무오리 extends 오리 {
고무오리() {
fly = 0;
swim = 0;
}
}
class 로봇오리 extends 오리 {
로봇오리() {
fly = 0;
swim = 1;
}
}
public class Main {
public static void main(String[] args) {
전사 a전사 = new 전사();
a전사.공격("브라이언", "칼");
// 브라이언(이)가 칼(으)로 공격합니다.
a전사.재공격();
// 브라이언(이)가 칼(으)로 공격합니다.
a전사.공격("필립", "창");
// 필립(이)가 창(으)로 공격합니다.
a전사.공격("마크", "지팡이");
// 마크(이)가 지팡이(으)로 공격합니다.
a전사.재공격();
// 마크(이)가 지팡이(으)로 공격합니다.
a전사.재공격();
// 마크(이)가 지팡이(으)로 공격합니다.
}
}
class 전사 {
String lastName;
String lastWeapon;
void 공격(String name,String weapon) {
lastName = name;
lastWeapon = weapon;
System.out.println(lastName + "(이)가 " + lastWeapon + "(으)로 공격합니다.");
}
void 재공격() {
공격(lastName, lastWeapon);
}
}