다형성(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 |