자바(java) 상속 요점 정리
2021. 12. 16. 23:14ㆍ자바 (Java)
클래스 상속과 객체
- 자바에서 상속은 부모 클래스의 필드와 메소드를 자식 클래스에게 물려주는 것이다.
- 부모 클래스를 슈퍼 클래스, 자식 클래스를 서브 클래스라고도 한다.
- 자바에서 상속을 선언할 때 extends 키워드를 사용한다.
protected 접근 지정, 상속과 생성자
- 서브 클래스에서 슈퍼 클래스의 private 멤버는 접근할 수 없다.
- 슈퍼 클래스의 protected 멤버는 패키지 소속과 상관없이 서브 클래스에서 접근이 가능하며 동일한 패키지 냅의 클래스에서도 접근이 가능하다.
- 서브 클래스의 인스턴스가 생성되면 항상 서브 클래스의 생성자 한 개와 슈퍼 클래스의 생성자 한 개가 실행된다.
- 이때 슈퍼 클래스의 생성자가 서브 클래스보다 먼저 실행된다.
- 서브 클래스의 생성자 작성시, super()로 슈퍼 클래스의 생성자를 명시적으로 선택한다.
- 만일 슈퍼 클래스의 생성자를 명시적으로 선택하지 않으면, 컴파일러는 슈퍼 클래스의 매개 변수 없는 기본 생성자를 선택한다.
업캐스팅과 instaceof 연산자
- 서브 클래스 객체는 슈퍼 클래스 타입으로 자동 타입 변환이 가능하며, 이를 업캐스팅이라한다.
- 다시 원래 타입으로 강제 타입 변환하는 것을 다운 캐스팅이라고 한다.
- instanceof 연산자의 결과 값은 boolean타입이며, 객체가 어떤 클래스 타입인지 판별할 수 있다.
메소드 오버라이딩
- 슈퍼 클래스에 선언된 메소드를 서브 클래스에서 재정의하는 것을 메소드 오버라이딩이라고 한다.
- 슈퍼 클래스의 메소드를 오버라이딩하면, 서브 클래스에 오버라이딩한 메소드가 항상 실행된다.
- 호출된 메소드를 실행 시간에 찾아서 실행한 것을 동적바인딩이라고 부른다.
- 오버라이딩된 메소드는 동적 바인딩 방식으로 호출되고 실행된다.
- super키워드는 정적 바인딩으로 슈퍼 클래스에 있는 멤버에 접근할 때 사용한다.
추상 클래스와 인터 페이스
- 추상 메소드는 실행 코드 없이 원형만 선언된 미완성 메소드이다.
- 반드시 메소드 이름 앞에 abstract를 붙여 선언하여야 한다.
- 추상 클래스는 최소 한개의 추상 메소드를 포함하는 경우 반드시 추상 클래스로 선언하여야 한다.
- 그러나 추상 메소드가 하나도 없는 경우라도 추상 클래스로 선언할 수 있다.
- 자바에서 인터페이스는 interface키워드를 사용하여 선언한다.
- 인터페이스를 구현할 때 implements 키워드를 사용하며, 인터페이스의 모든 추상 메소드를 구현하여야 한다.
- 추상 클래스와 인터페이스는 인스턴스 (객체)를 생성할 수 없다. .
'자바 (Java)' 카테고리의 다른 글
(자바)컬렉션과 제네릭 요점 정리 (1) | 2021.12.20 |
---|---|
자바(java) 패키지 요점 정리 (1) | 2021.12.19 |
객체 지향과 자바, 자바 클래스 만들기 요약! (0) | 2021.12.09 |
자바 : 상속 (0) | 2021.12.06 |
생활 코딩강의로 클래스, 메소드 이해하기 (0) | 2021.11.30 |