2018년 4월 17일 화요일

(4. 17.) 상속, 다형성, overriding, overloading, insteadof, casting

1. 상속
  ○ 부모클래스의 멤버를 물려받아 사용하는 것
     - private은 제외
     - 다른패키지+default 제외
  ○ 키워드: extends, super(), overriding
     - extends: 상속받을 상위클래스 선언(1자식 1 super)
     - super(): 상위클래스의 생성자 호출
     - @overriding: 상위클래스가 맘에 들지않아 subclass에서 정의하는 메소드
          1) input param은 동일 2) 접근 제한을 더 강하게 불가 3) 새로운 예외 불가

2. 다형성
  ○ overriding method가 있으면 상위클래스 메소드는 hidden
  ○ final 클래스는 상속 불가, final method는 overriding 불가

3. Casting
  ○ 여러 타입을 가진 상속받은 클래스는 대표 타입이 있고, 상속 타입 중에서 casting 가능
       - promotion casting: 상위클래스 a= new 상속받은 클래스();
       - 강제 casting
  ○ shadow effect
       - 상위타입으로 선언된 경우에는 상위 클래스 이상 멤버로만 한정
       - 예외: 메소드가 상속된 후 overriding 되었다면 이 경우라도 subclass에서 호출 가능(feat. 다형성)
https://docs.oracle.com/javase/tutorial/java/IandI/override.html
https://www.codeproject.com/Articles/1081861/OOP-Difference-between-Shadowing-and-Overriding

4. 다형성
  ○ 상속, 오버라이딩, 타입변환 : 사용이 자유로원
     - 다형적 변수
     - 재정의
     - overloading

5. instanceof
  ○ 객체가 어떤 클래스의 인스턴스인지 확인하려면?
       Shape(객체) instanceof Circle(인스턴스)
       shape가 Circle의 인스턴스로 구성되었니?????
       shape가 circle로 변환이 가능하니?

댓글 없음:

댓글 쓰기

[Android Studio] Installation and Make a Layer for Mac OS(High Sierra)

1. download android studio https://developer.android.com/studio/#downloads 2. Make a Shared Resource(String in this case) 3...