노트정리

2022_10_12 정리

0304호 2022. 10. 12.


다형성(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

댓글