본문 바로가기

JAVA/DAY 15 _ 23.09.06

상속_array활용

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