상속이란 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것.
(= 부모 클래스의 자원을 자식 클래스에서 자신의 것처럼 사용하는 기술)
OOP언어의 중요한 3가지 특징(상속, 다형성, 캡슐화) 중 하나.
코드재사용성을 높임.
조상클래스(super class) - 부모클래스를 포함한 상속관계의 모든 상위 클래스.
모든 자식클래스가 가지는 공통특징을 구현.
자손클래스(sub class) - 하위클래스
부모가 제공하는 공통기능을 사용하고(코드의 재사용성) + 자신만의 특별한 기능 구현
상속특징 >>
1. 자손클래스는 항상 조상클래스보다 같거나 많은 멤버를 갖는다. (확장)
상속 키워드 : extends
2. 생성자와 초기화블록은 상속되지 않는다. 멤버만 상속.
3. 자손클래스를 생성하면 먼 조상클래스부터 차례로 생성 후 자손클래스 생성.
4. 단일 상속만 지원(부모 클래스가 명확하지만 기능확장 어려움)
5. java.lang.Object 클래스는 자바 모든 클래스의 조상클래스이다.
단일상속 >>
하나의 부모만 상속.
C++에서는 가능했던 다중상속이 자바에서는 비허용됨.
자바에서는 인터페이스를 이용하여 다중상속기능 구현.
다중상속은 서로 다른 클래스 2개로부터 상속받았는데 두 클래스 모두 power()라는 메서드를 가지고 있으면 헷갈린다는 문제점이 있음. (서로 다른 클래스로부터 상속받은 멤버간의 이름이 같은 경우 구별할 수 있는 방법이 없다는 단점)
비중이 높은 클래스 하나만 상속관계로, 나머지는 포함관계(has a)로.
Object클래스 >>
모든 클래스의 조상.
부모가 없는 클래스는 Compiler가 자동으로 'extends Object'를 추가. Object 클래스를 상속받게 된다.
11개의 메서드.
=> 자바의 모든 클래스는 Object클래스에 정의된 모든 멤버(11개 메서드 포함)를 사용할 수 있다.
Object클래스의 toString()메서드>>
[클래스이름@객체주소값] 반환
=>정확히는 객체주소값 아님.
System.out.println(); 메개변수로 참조변수오면 참조변수.toString()이 아닌,
참조변수만 써도 println()기능으로 toString()이 자동으로 호출됨.
'Java' 카테고리의 다른 글
&&와 ||, &와 | //구동 차이와 활용 (0) | 2022.02.09 |
---|---|
오버라이딩 (0) | 2022.01.19 |
java.lang.Math 주요 method (0) | 2022.01.19 |
형변환(Casting) (0) | 2021.12.28 |
자바 문서 주석 (0) | 2021.12.28 |