추상클래스는 인스턴스 생성이 안되잖아
근데 Person 이라는 추상클래스를 만들고
Student 라는 클래스로 상속받게 한다음에
Person p1 = new Student();
이렇게 선언하는건 어떻게 봐야하는거임? 이건 person 이 아니라 student에서 인스턴스가 만들어진다고 보는거임?..
추상클래스는 인스턴스 생성이 안되잖아
근데 Person 이라는 추상클래스를 만들고
Student 라는 클래스로 상속받게 한다음에
Person p1 = new Student();
이렇게 선언하는건 어떻게 봐야하는거임? 이건 person 이 아니라 student에서 인스턴스가 만들어진다고 보는거임?..
person을 상속받은 student 클래스의 인스턴스가 만들어지는거지 너가 이해하는게 맞음 ㅇㅇ
그럼 저렇게 쓰는 이유가 뭐임?
그냥 똑같이 다형성으로 보면 되는건가
내가 알기로 보통은 코드 가독성을 높이려고 저렇게 쓰는걸로 암 가령 person을 파라메터로 받는 함수 func1을 호출할때 student s = new student(); func(s); 일케 하는거보다 person s = new student(); func(s); 일케 하는게 좀더 보기가 좋아서 ...?
person s = new student(); 이렇게 쓰는게 상속받았다는게 한눈에 들어와서 그런가보넴 독학중이라 마땅히 물어볼곳이 없었는데 고마워 도움됐어!!
도움됐다니 다행임 ㅇㅇ 나도 실무에서 그냥 무의식적으로 저렇게들 쓰길래 따라쓰고 있었는데 생각해보는 계기가 됐당...
Person p1은 Person을 구현한 모든 자식 클래스를 가리킬 수 있는 넘임. 그래서 new Student()로 생성된 객체를 가리킬 수 있는거고 굳이 Person으로 받는 이유는 나중에 다른 클래스로 교체하기 쉽게 하기 위함임