자바 상속6

윤비·2023년 10월 23일
0
post-custom-banner

*시작코드

/* 요구사항

  • D1 요구 : 오리를 생성하고 날게하시오.
  • D1 완료 : 클래스와 메서드를 만들어서 처리
  • D2 요구 : 게임의 디테일을 살리기 위해서 청둥오리흰오리를 생성하고 날게하시오.
  • D2 완료 : 클래스와 메서드를 만들어서 처리
  • D3 요구 : 오리 계열의 클래스에 날다 메서드가 중복되었습니다. 중복을 제거해주세요.
  • D3 완료 : 상속을 사용해서 처리
  • D4 요구 : 게임의 재미를 위하여 고무오리를 추가하고 날게 하시오.
  • D4 완료 : 클래스와 메서드를 만들어서 처리
  • D5 요구 : 주말 주주회의에서 고무오리가 하늘을 날아다니는 것에 대해서 태클이 들어왔습니다. 고무오리 계열은 하늘을 날 수 없게 해주세요.
  • D5 완료 : 메서드 오버라이드를 사용해서 처리
  • D6 요구 : 고무오리가 반응이 좋습니다. 고무2오리를 추가하고 날게 해주세요.
  • D6 완료 : 고무2오리를 추가
  • D7 요구 : 고무오리계열에서 날다 메서드의 중복을 제거해주세요.
    */

public class Main {
public static void main(String[] args) {

    청둥오리 a청둥오리 = new 청둥오리();
    a청둥오리.날다();
    // 출력 : 오리가 날았습니다.

    흰오리 a흰오리 = new 흰오리();
    a흰오리.날다();
    // 출력 : 오리가 날았습니다.

    고무오리 a고무오리 = new 고무오리();
    a고무오리.날다();
    // 출력 : 저는 날 수 없어요. ㅜㅠ

    고무2오리 a고무2오리 = new 고무2오리();
    a고무2오리.날다();
    // 출력 : 저는 날 수 없어요. ㅜㅠ
}

}

class 오리 {
void 날다() {
System.out.println("오리가 날았습니다.");
}
}

// 오리 => 부모 클래스
// 흰오리 => 자식 클래스
// 흰오리 extends 오리 => 흰오리가 오리의 능력을 물려 받는다.
// "흰오리오리이다." 라고 자바에게 알려준다.
// A 는 B 이다. 테스트에 통과하는 것만 상속이 가능하다.
// 클래스와 객체는 명사이다.
// 메서드는 동사이다.
class 흰오리 extends 오리 {

}

class 청둥오리 extends 오리 {
}

class 고무오리 extends 오리 {
// 메서드 재정의 라고 합니다.
// 메서드 오버라이드 라고도 합니다.
// 메서드 재정의 => 부모가 물려준 능력을 다시 구현한다.
void 날다() {
System.out.println("저는 날 수 없어요. ㅜㅠ");
}
}

class 고무2오리 extends 오리 {
// 메서드 재정의 라고 합니다.
// 메서드 오버라이드 라고도 합니다.
// 메서드 재정의 => 부모가 물려준 능력을 다시 구현한다.
void 날다() {
System.out.println("저는 날 수 없어요. ㅜㅠ");
}
}


*정답코드

/* 요구사항

  • D1 요구 : 오리를 생성하고 날게하시오.
  • D1 완료 : 클래스와 메서드를 만들어서 처리
  • D2 요구 : 게임의 디테일을 살리기 위해서 청둥오리흰오리를 생성하고 날게하시오.
  • D2 완료 : 클래스와 메서드를 만들어서 처리
  • D3 요구 : 오리 계열의 클래스에 날다 메서드가 중복되었습니다. 중복을 제거해주세요.
  • D3 완료 : 상속을 사용해서 처리
  • D4 요구 : 게임의 재미를 위하여 고무오리를 추가하고 날게 하시오.
  • D4 완료 : 클래스와 메서드를 만들어서 처리
  • D5 요구 : 주말 주주회의에서 고무오리가 하늘을 날아다니는 것에 대해서 태클이 들어왔습니다. 고무오리 계열은 하늘을 날 수 없게 해주세요.
  • D5 완료 : 메서드 오버라이드를 사용해서 처리
  • D6 요구 : 고무오리가 반응이 좋습니다. 고무2오리를 추가하고 날게 해주세요.
  • D6 완료 : 고무2오리를 추가
  • D7 요구 : 고무오리계열에서 날다 메서드의 중복을 제거해주세요.
  • D7 완료 : 고무2오리 클래스가 고무오리를 상속받아서 중복제거
    */

public class Main {
public static void main(String[] args) {

   청둥오리 a청둥오리 = new 청둥오리();
    a청둥오리.날다();
    // 출력 : 오리가 날았습니다.

    흰오리 a흰오리 = new 흰오리();
    a흰오리.날다();
    // 출력 : 오리가 날았습니다.

    고무오리 a고무오리 = new 고무오리();
    a고무오리.날다();
    // 출력 : 저는 날 수 없어요. ㅜㅠ

    고무2오리 a고무2오리 = new 고무2오리();
    a고무2오리.날다();
    // 출력 : 저는 날 수 없어요. ㅜㅠ
}

}

class 오리 {
void 날다() {
System.out.println("오리가 날았습니다.");
}
}

// 오리 => 부모 클래스
// 흰오리 => 자식 클래스
// 흰오리 extends 오리 => 흰오리가 오리의 능력을 물려 받는다.
// "흰오리오리이다." 라고 자바에게 알려준다.
// A 는 B 이다. 테스트에 통과하는 것만 상속이 가능하다.
// 클래스와 객체는 명사이다.
// 메서드는 동사이다.
class 흰오리 extends 오리 {

}

class 청둥오리 extends 오리 {
}

class 고무오리 extends 오리 {

// 메서드 재정의 라고 합니다.
// 메서드 오버라이드 라고도 합니다.
// 메서드 재정의 => 부모가 물려준 능력을 다시 구현한다.
void 날다() {
    System.out.println("저는 날 수 없어요. ㅜㅠ");
}

}

class 고무2오리 extends 고무오리 {
}

profile
안녕하세요 응애 나 애기개발자
post-custom-banner

0개의 댓글