본문 바로가기

Backend/Java

[인프런] 객체, 생성 방법, 객체 생성

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

 

부모 클래스 Person이 있고, 이를 상속받은 자식 클래스 Student가 있다.

정리하면, 하위 클래스의 인스턴스(객체)는 보다 위인 상위 클래스의 인스턴스(객체)로도 사용될 수 있다.

하지만 그 반대는 안 된다.

따라서 상위(부모) 클래스의 인스턴스(객체)는 하위(자식) 클래스의 인스턴스(객체)로 사용될 수 없다.

 

class Person{}
class Student extends Person{}

public class Java100Ex17{
	public static void main(String[] args) {
		// [1]: 객체 생성
		Student s1 = new Student(); // 지극히 정상 --> 에러날 이유가 하나도 없다.
		
		// [2]: 객체 생성 --> 타입은 부모 타입으로 생성
		Person s2 = new Student(); // 이것도 정상 --> 하위(자식) 클래스로 객체를 만들면서 타입은 상위(부모) 타입을 쓰는 것이 가능 --> 다형성
		
		// [3]: 객체 생성
		Person p1 = new Person(); // 지극히 정상
		
		// [4]: 객체 생성 --> 상위(부모) 클래스로 객체를 생성하면서 타입은 하위(자식) 타입을 쓰는 경우 --> 에러
		// Student p2 = new Person();
	}
}