본문 바로가기

JAVA

자바 기초 9 (다형성)

다형성(Polymorphism)

: 갖가지 다른 형태를 가지는 성질

 

기본적으로 자바는 다형성을 그 특징으로 가지는 객체 지향 프로그래밍 언어

이 다형성을 이용해 객체를 사용할 때 사용하는 변수 형태를 바꾸어 여러 타입의 객체를 참조할 수 있다.

다형성은 부모 클래스 타입의 참조 변수로 하위 클래스의 객체를 참조할 수 있게 해준다 

 

 

 

과일 정보 프로젝트를 구현합니다.

 

Peach.java

public class Peach extends Fruit{


  public Peach(){
    price = 1500;
    name = "복숭아";
    fresh = 75;
    // 변수를 초기화 한 후 안에 정보를 넣어준다
  }
}

Fruit.java

public class Fruit {

  String name;
  int price;
  int fresh;

  public void show() {
  // 갖가지 변수를 출력해주는 함수

    System.out.println("이름 : " + name);
    System.out.println("가격 : " + price);
    System.out.println("신선도 : " + fresh);
  }
}

Main.java

public class Main {

  public static void main (String[] args) {

    Fruit fruit = new Peach();
    // 부모클래스의 변수로써 자식클래스 인스턴스를 넣어줄 수 있다.
    
    fruit.show();
  }
}

 

 

 

Scanner을 사용해 값을 받아서 과일 정보 프로젝트 구현

 

Peach.java

public class Peach extends Fruit{

  public Peach(){
    price = 1500;
    name = "복숭아";
    fresh = 75;
    // 변수를 초기화 한 후 안에 정보를 넣어준다
  }
}

Banana.java

public class Banana extends Fruit {
  public Banana() {

    price = 1000;
    name = "바나나";
    fresh = 80;
  }
}

Fruit.java

public class Fruit {

  String name;
  int price;
  int fresh;

  public void show() {
  // 갖가지 변수를 출력해주는 함수

    System.out.println("이름 : " + name);
    System.out.println("가격 : " + price);
    System.out.println("신선도 : " + fresh);
  }
}

Main.java

import java.util.Scanner;


public class Main {


  public static void main (String[] args) {


    Scanner scanner = new Scanner (System.in);
    System.out.println("바나나 : 1, 복숭아 : 2?");

    int input = scanner.nextInt();
    // 입력한 과일 받아오기
    
    Fruit fruit;
     // 미리 fruit을 만들어 놓기

    if (input == 1){
      fruit = new Banana();
      // fruit을 Banana로 초기화
      fruit.show();
    }
    else if (input == 2) {
      fruit = new Peach();
      fruit.show();
    }  
  }
}

'JAVA' 카테고리의 다른 글

자바 ( 컬렉션과 제네릭)  (0) 2021.12.02
자바 기초 10 (객체 (Object) 지향의 활용)  (0) 2021.10.14
자바 기초 8 (인터페이스)  (0) 2021.10.14
자바 기초 7 (추상, Final 키워드)  (0) 2021.10.14
자바 기초 6 (상속)  (0) 2021.10.13