1. 상속
: 부모 클래스에 정의된 멤버 변수, 메소드를 자식 클래스가 물려 받는 것.
1-1. 상속의 형식
class A extends B
자식 클래스 이름 뒤에 extends를 쓰고 부모 클래스 이름을 적는다.
1-2. 상속의 특징
1) 다중 상속을 지원하지 않는다. (여러 개의 클래스로부터 상속받을 수 없음. 클래스 간의 다중 상속을 지원하지 않음)
2) 상속의 횟수에는 제한이 없다.
3) 상속 계층 구조의 최상위에는 java.lang.Object 클래스가 있다.
1-3. 상속과 접근 지정자
자식 클래스는 부모 클래스의 public, protected 멤버, 디폴트 멤버를 상속 받지만, private 멤버는 상속되지 않음.
1-4. super();
super() 호출 시 부모 클래스의 생성자가 호출된다.
그러나 명시적으로 호출하지 않아도 부모 클래스에 기본 생성자가 정의되어 있는 경우 (매개 변수가 없는 생성자) 컴파일러는 부모 클래스의 기본 생성자 자동 호출하도록 함.
2. 메소드 오버라이딩
: 자식 클래스가 부모 클래스의 메소드를 자신의 필요에 맞추어서 재정의하는 것.
메소드의 이름, 매개 변수, 반환형은 동일하여햐 함.
2-1. 오버라이딩 vs 오버로딩
오버로딩 : 같은 이름을 가진 여러 개의 메소드를 작성하는 것 (매개 변수를 달리해서) -> 컴파일 시간에서의 다형성 지원
오버라이딩 : 부모 클래스의 메소드를 자식 클래스가 다시 정의하는 것 -> 실행 시간에서의 다형성 지원
2-2. 다형성
: 객체들의 타입이 다르면 똑같은 메시지가 전달되더라도 서로 다른 동작을 하는 것
3. 업캐스팅 (=상향 형변환)
: 부모 클래스 변수로 자식 클래스 객체를 참조할 수 있다. 묵시적으로 수행될 수 있다. 자식 클래스의 멤버는 접근이 불가능하다.
메소드의 매개 변수를 부모 타입으로 선언하면 훨씬 넓은 범위의 객체를 받을 수 있음.
4. instanceof 연산자
: 변수가 가리키는 객체의 실제 타입을 알려주는 연산자.
'4학기 > JAVA' 카테고리의 다른 글
[JAVA] chap07. 추상 클래스, 인터페이스, 중첩클래스 (0) | 2022.11.15 |
---|---|
[Java] 생활코딩 - 패키지 (0) | 2022.08.06 |
[Java] 생활코딩 - 클래스 패스 (0) | 2022.08.06 |
[Java] 생활코딩 - overriding, overloading (0) | 2022.08.06 |
[Java] 생활코딩 - 상속 (0) | 2022.08.06 |