본문 바로가기

Backend/Java

[인프런] 다형성, 객체 생성, 배열, 반복문

예제로 공부하는 Java 100 문제풀이 Part.4

 

class Person{}
class Batman extends Person{}

class Human{}
class Superman extends Human{}

public class Java100_Ex41 {
	public static void main(String[] args) {
		// [1]: 배열에서 다형성을 사용할 수 없다면
		// 배열 --> 동일한 타입의 데이터를 하나로 묶어서 관리하는 자료구조 --> 다형성이 없다면 각 객체별로 관리를 해야 한다.
		Person[] persons = new Person[10]; // Person 전용
		persons[0] = new Person();
		persons[1] = new Person();
		
		Batman[] batmans = new Batman[10]; // Batman 전용
		batmans[0] = new Batman();
		batmans[1] = new Batman();
		
		// [2]: 배열에서 다형성을 사용할 수 있기에
		Human[] humans = new Human[10];
		humans[0] = new Human();
		humans[1] = new Superman();
		
		// [3]: 매개변수의 다형성
		// 프로그래밍 언어에서 함수나 메서드를 호출할 때는 그에 맞는 적절한 파라미터를 보내줘야 한다.
		// System.out.println() 메서드의 경우 어떤 타입, 객체를 매개변수로 받더라도 에러없이 해당 객체의 값을 출력한다.
		// --> 다형성을 활용하기 때문이다.
		System.out.println(new Person()); // 객체 넣어도 출력 가능함
		System.out.println(new Batman());
		System.out.println(new Human());
		System.out.println(new Superman());
	}
}