멍하
돌아온 자바공부 6일차
21강 다형성
다형성 : 다양한 형태의 성질을 가질 수 있다.
// 예를 들어 a메소드로 선언하면 a 클래스를 상속받는 b클래스의 메소드도 사용할 수 있다?
fruit class를 생성하여 과일에 대한 속성을 지정해주고 Peach와 Banana class를 만들어 fruit를 상속받는다
//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);
}
}
peach class에 peach 메소드를 생성해주고 banana도 동일하게 작업해준다.
//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;
}
}
main에서 scanner로 바나나를 고를지 복숭아를 고를지 입력받은 후, 입력받은 과일 메소드를 fruit에 대입해준다.
//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;//자식클래스의 인스턴스 변수를 대입
if(input == 1)
{
fruit = new Banana();
fruit.show();
}
else if (input == 2) {
fruit = new Peach();
fruit.show();
}
}
}
하위 클래스의 객체를 참조할 수 있다!
'JAVA' 카테고리의 다른 글
[JAVA] Object class, 객체지향기법의 활용 (0) | 2023.09.18 |
---|---|
이클립스(eclipse) 한글 깨짐 고치기 (0) | 2023.09.18 |
[JAVA] final 키워드 | 인터페이스(interface) (0) | 2023.09.15 |
[JAVA] 추상 클래스(abstract class) (0) | 2023.09.15 |
[JAVA] 배열, 다차원 배열, 클래스, 상속 (0) | 2023.09.14 |