다형성(Polymorphism)
클래스의 형변환
부모클래스 변수 = new 자식클래스()
ex)Student s = new Student();
ex)Person p = s;
ex)Person p = new Student();
부모클래스에 있는 기능만 사용할수 있다;
하지만 오버라이딩 된 메서드는 먼저 실행됨
오버라이딩도 단축키가 있다
(alt + shift + s -> ovverride/implement methods)
자식이 부모에 저장 되는데, 부모님 처럼 사용되지만, 자식의 오버라이딩된 메서드가 실행됨
부모에 자식을 저장하는건 => 부모가 자식에게 물려준것만 사용가능
ex ) System.out.println(p==c); //동일한 주소값을 나타냄 저장소가 동일
강제타입변환
부모타입을 자식타입으로 변환 할 수 있다
(이미 부모타입으로 형변환이 일어난 객체만 가능하다)
System.out.println("======클래스 캐스팅======");
//다형성이 적용되면, 자식이 가지고 있던 본래의 기능을 사용할 수 없기 때문에
//클래스캐스팅이 가능해진다
Child cc = (Child)p;
cc.method01();
cc.method02();
cc.method03();
System.out.println("----------주의할점----------");
//다형성이 적용된 객체만 캐스팅이 가능하다
Parent pp = new Parent(); //Parent로 만들어져서 Child의 기능이 없기에
Child ccc = (Child)pp; //ClassCastException이라는 에러가 나옴
'노트정리' 카테고리의 다른 글
2022_10_14 정리 (0) | 2022.10.14 |
---|---|
2022_10_13 정리 (0) | 2022.10.13 |
2022_10_11 정리 (0) | 2022.10.11 |
2022_10_07 정리 (0) | 2022.10.07 |
2022_10_06 정리 (0) | 2022.10.06 |
댓글