package polymorghism;
class Parent {
private int money = 1000000;
public void spend(int money) {
this.money -= money;
System.out.println("[Perent] 남은 돈은 " + this.money + "입니다");
}
public void work() {
System.out.println("[Perent] 열심히 일하는 중입니다.");
}
}
class Son extends Parent {
public void play() {
System.out.println("[Son] 신나게 놀고 있어요 ~!");
}
@Override
public void spend(int money) {
System.out.println("[Son] 용돈 " + money + "원 주세요 ~~~");
}
}
class Daughter extends Parent {
public void study() {
System.out.println("[Daughter] 학원 공부하고 있어요 ~~~");
}
@Override
public void spend(int money) {
System.out.println("[Daughter] 학원비 " + money + "원 주세요 ~~~");
}
}
public class Ex01 {
public static void main(String[] args) {
Parent[] p3 = new Parent[] {new Son(), new Daughter()};
// [ 과제 ] ================================
// 다형성으로 구현된 객체배열의 메소드 호출하시오.
// : Son 객체는 play() 메소드를
// : Daughter 객체는 study() 메소드를 호출하시오.
System.out.println("\n\n<< 향상된 for문으로 메소드 호출 >> ");
for (Parent perent: p3) { // 부모 타입을 자식 타입으로 바꿀꺼니까 강제형변환(downcaseting)
if (perent instanceof Son) {
((Son)perent).play();
} else if (perent instanceof Daughter) {
((Daughter)perent).study();
}
}
System.out.println(p3[0] instanceof Son); // true
System.out.println(p3[1] instanceof Daughter); // true
System.out.println(p3[1] instanceof Son); // false
System.out.println(p3[0] instanceof Daughter); // false
System.out.println("======================================\n");
}
}
# 실행 결과
[Son] 신나게 놀고 있어요 ~!
[Daughter] 학원 공부하고 있어요 ~~~
true
true
false
false
======================================
package polymorghism;
class Parent {
private int money = 1000000;
public void spend(int money) {
this.money -= money;
System.out.println("[Perent] 남은 돈은 " + this.money + "입니다");
}
public void work() {
System.out.println("[Perent] 열심히 일하는 중입니다.");
}
}
class Son extends Parent {
public void play() {
System.out.println("[Son] 신나게 놀고 있어요 ~!");
}
@Override
public void spend(int money) {
System.out.println("[Son] 용돈 " + money + "원 주세요 ~~~");
}
}
class Daughter extends Parent {
public void study() {
System.out.println("[Daughter] 학원 공부하고 있어요 ~~~");
}
@Override
public void spend(int money) {
System.out.println("[Daughter] 학원비 " + money + "원 주세요 ~~~");
}
}
public class Ex01 {
public static void main(String[] args) {
// [ 과제 2 ] 배열로 나타내기
// Parent[] p3 = 객체배열생성; // 생성과 동시에 초기화
System.out.println("\n다형성 : 객체 배열 >>");
// [ 과제 ] ================================
// 다형성으로 구현된 객체배열의 메소드 호출하시오.
// : Son 객체는 play() 메소드를
// : Daughter 객체는 study() 메소드를 호출하시오.
for (Parent perent: p3) { // 부모 타입을 자식 타입으로 바꿀꺼니까 강제형변환(downcaseting)
//
}
}
}
'Language > JAVA' 카테고리의 다른 글
JAVA 자바 활용 백엔드 개발 기초 연습 문제 - 상속 문제 (0) | 2024.04.17 |
---|---|
JAVA 자바 활용 백엔드 개발 기초 연습 문제 - 다형성으로 구현된 객체의 메소드 호출하기 (0) | 2024.04.17 |
자바 문제 (0) | 2024.04.16 |
JAVA 자바 활용 백엔드 개발 기초 연습 문제 - 다형성, 객체 배열 생성과 초기화 (0) | 2024.04.16 |
JAVA 자바 활용 백엔드 개발 기초 연습 문제 - 생성자를 이용해 부모 Class 에 private 타입의 멤버변수 접근하기 (0) | 2024.04.16 |