본문 바로가기

다형성3

추상클래스 여기서 결론 추상메서드는 반드시 자식에서 재정의 되어야 하기 때문에 다형성이 보 장 됨 참고 구현메서드가 추가된 Animal Animal ani = new Dog(); => Animal의 eat가 추상메서드가 아닌 경우, Dog에 eat이 재정의 되어있지 않아도 Animal의 eat이 실행 잘됨 ( 추상클래스가 아니니까, 불완전 클래스가 아니니까 실행 잘만 됨) @override 어노테이션, 생략은 가능한테 입력을 해놓으면 컴파일러가 오버라이딩처리를 체크하기 때문에 개발자의 실수를 줄여준다고 한다. 2021. 10. 16.
다형성 실습 super() 아무데나 집어넣고 왜 에러뜨는지 이유를 몰랐음 ; 생성자메서드가 아닌 그냥메서드에 넣어놓고 부모생성자를 호출하고 있었다... 흠 어째서 위와 다른 결과가 나오는거지 싶었다. 나의 착각 생성(new)과 동시에 생성자 호출호출~~~!!! 2021. 10. 16.
다형성, 다형성 활용 다형성 ~~~~ 같은 메세지, 다른 기능 조상클래스 타입이 자손클래스를 참조하면, 자손클래스를 참조하기 때문에 조상클래스 변수가 자손클래스의 메서드에 접근가능ㅋ 조상 조 = new 자손(); // 가능 조.자손메서드(); // 가능 반대로, 자손이 조상클래스를 참조하는 것은 불가~~ 자손 자 = new 조상(); // 이거 안됨. 빨간줄뜸ㅋ // Type mismatch: cannot convert from 조상 to 자손 조상의 멤버 개수보다 자손의 멤버 개수가 많기 때문에 안됨~~ 형변환으로 다운캐스팅해주며는 가능 형변환은 참조변수의 타입을 변환하는 것이지 인스턴스를 변환하는 것은 아니기 때문에 참조변수의 형변환은 인스턴스에 아~~무런 영향을 미치지 않는다. 단지 참조변수의 형변환을 통해서, 참조하고.. 2021. 10. 15.