728x90
클래스 상속
- 새로운 클래스를 정의할 때 이미 구현된 클래스를 상속받아서 속성이나 기능을 확장하여 클래스를 구현함
- 이미 구현된 클래스보다 더 구체적인 기능을 가진 클래스를구현해야 할 때 기존 클래스를 상속
- class B extends A { }
- extends키워드 뒤에는 단 하나의 클래스만 올 수 있다!
자바는 단일 상속(single inheritance) 만을 지원함
상속을 구현하는 경우
- 상위 클래스는 하위 클래스보다 더 일반적인 개념과 기능을 가짐
- 하위 클래스는 상위 클래스 보다 더 구체적인 개념과 기능을 가짐
- 하위 클래스가 상위 클래스의 속성과 기능을 확장한다는 의미
사람 < 포유류
class Mammal{
}
class Human extends Mammal{
}
super 키워드
- 하위클래스에서 가지는 상위 클래스에 대한 참조 값
- super()는 상위 클래스의 기본 생성자를 호출함
- 하위 클래스에서 명시적으로 상위 클래스의 생성사를 호출하지 않으면 super()가 호출됨 (이때 반드시 상위 클래스의 기본 생성자가 존재해야 함)
- super는 생성된 상위 클래스 인스턴스의 참조 값을 가지므로 super을 이용하여 상위 클래스의 메서드나 멤버 변수에 접근할 수 있음
하위 클래스에서 메서드 재정의하기 : 오버라이딩(overriding)
상위 클래스에 정의된 메서드의 구현 내용이 하위 클래스에서 구현할 내용과 맞지 않는 경우 하위 클래스에서 동일한 이름의 메서드를 재정의할 수 있음
@overriding 애노테이션 (annotation)
애노테이션은 원래 주석이라는 의미
컴파일러에게 특별한 정보를 제공해주는 역할
(컴파일러 = 고급 언어로 쓰인 프로그램을 즉시 실행될 수 있는 형태의 프로그램으로 바꾸어 주는 번역 프로그램)
@override : 재정의된 메서드라는 정보 제공
728x90
'JAVA' 카테고리의 다른 글
인터페이스 (0) | 2023.03.14 |
---|---|
업캐스팅과 다운캐스팅 (0) | 2023.03.14 |
배열(array) - 자료를 순차적으로 한꺼번에 관리하는 방법 (0) | 2023.03.14 |
디자인 패턴 (0) | 2023.03.14 |
여러 인스턴스에서 공통으로 사용하는 변수를 선언하자 - static변수 (0) | 2023.03.14 |
댓글