본문 바로가기
반응형

학습65

7. 상속(Inheritance) (강제타입 변환, instanceof, 추상(abstract)클래스 - 강제타입 변환 상위 타입 객체를 하위타입 객체로 변환하는 것 언제나 상위타입을 하위타입으로 강제 변환할 수 있는 것은 아니다. 상위타입으로 생성된 객체를 하위타입으로 강제 타입 변환 할 수 없다. 이경우 ClassCastException이 발생한다 public class Phone { String number; public void makeAphoneCall() { System.out.println("전화를 겁니다."); } } =========================================== public class SmartPhone extends Phone{ // IsA 관계 // 스마트폰은 폰이다. // 스마트폰은 폰의 한 종류이다. String[] apps = {"유튜브", "플레.. 2022. 10. 17.
7. 상속(Inheritance) (Override 불가, 다형성, List<E>) - 정적 메소드는 오버라이딩 되지 않음 public class Figure { static void area() { System.out.println("도형의 넓이"); } } ========================================== class Circle extends Figure { static void area() { System.out.println("도형의 넓이"); } } ========================================== public class FigureMain { public static void main(String[] args) { Circle.area(); Figure.area(); } } 값 도형의 넓이 도형의 넓이 마치 오버라이딩이 된.. 2022. 10. 12.
7. 상속(Inheritance) (Override, Annotation, toString()) - 메소드 재정의(Override) - 메소드 상위클래스에서 상속된 메소드를 하위클래스 재정의 비정적 메소드에만 해당한다. 메소드 오버라이딩 조건 부모 클래스의 메소드와 동일한 시그니처 가져야 한다. 접근 제한을 더 강하게 제한 할 수 없다. – public을 default나 private으로 수정 불가 – 반대로 default는 public 으로 수정 가능 새로운 예외(Exception) throws 불가 // 부모 클래스 public class Airplane { public void land() { System.out.println("착륙"); } public void takeOff() { System.out.println("이륙"); } public void fly() { // 오버라이딩 대상 S.. 2022. 10. 11.
7. 상속(Inheritance) (상속, 부모 생성자 호출 super()) - 상속 연관된 일련의 클래스들에 대한 공통규약 하위클래스가 상위클래스의 특성을 가진 채 그 기능을 확장하는 것 하위(서브, 자식)클래스 – 상위(슈퍼, 부모)클래스 - 상속 개념의 활용 상속의 효과 개발 생성산 향상, 코드 중복 제거, 유지 보수에 도움 , 다형성 구현 가능 상속의 대상 : 필드, 메소드 (생성자는 상속 대상이 아님) 정적 멤버(static이 붙은 것)는 상속되지 않는다. 그러나 지금은 상속된 것처럼 생각하고 사용해도 큰 문제가 없다. 상속 대상 제한 상위 클래스의 private 접근 갖는 필드와 메소드 제외 상위 클래스가 다른 패키지에 있을 경우, default 접근 갖는 필드와 메소드 도 제외 public, protected : 무조건 상속 default : 상위클래스와 하위클래스의.. 2022. 10. 11.
반응형