class Student extends Person{
Student(int a, int b){
System.out.println("여기다가 사용자가 정보를 입력하면 a,b가 arr[0]에 들어가는 거겠지");
}
}
class Police extends Person{
int c1;
}
class FireMan extends Person{}
// 학생4명, 경찰 5명, 소방관 3명.... --> 각각 배열을 만드는게 원래 내가하던것
// 1. 근데 이제 전~체를 묶어서 배열을 돌릴 수 있어.
class Person{} // --> 2. Person으로 배열을 받으면 되겠지
public static void main(String[] args) {
Person[] arr = new Person[10];
// 이 배열은 Person 클래스를 상속받은 하위 클래스의 객체도 저장할 수 있음!!
arr[0] = new Student(10, 5);
arr[1] = new Police();
arr[2] = new FireMan();
arr[3] = new Student(3, 21);
arr[4] = new Student(7, 4);
arr[5] = new FireMan(); // ... 이런식으로
for(Person p : arr) {}
// foreach로 돌릴 수 있다는거라구~
// 배열의 각 요소를 순회하며 각 요소를 Person 클래스의 참조 변수 p로 가져옴
// ---> 따라서 모든 하위 클래스의 객체에 대한 반복 작업을 수행할 수 있다
// p는 Person 클래스 또는 그 하위 클래스(Student, Police, FireMan)의 객체를 참조할 수 있음
// 여러 하위 클래스의 객체를 하나의 배열로 다룰 수 있다 ★★★
// for(Student s : arr) {}
// --> 이건안돼. arr가 Person[]의 참조변수인데, student는 person보다 하위클래스잖아?
'JAVA > DAY 15 _ 23.09.06' 카테고리의 다른 글
상속_array활용3 (0) | 2023.09.13 |
---|---|
상속_array활용2 (0) | 2023.09.12 |
Object class (0) | 2023.09.12 |
TypeCasting (0) | 2023.09.12 |
Polymorphism (1) | 2023.09.12 |