Java - 개념정리 4
2022. 4. 5. 15:50ㆍJava
반응형
상속
- 이미 잘 개발된 클래스를 재사용해서 새로운 클래스를 만들기 때문에 중복되는 코드를 줄인다.
- 부모 클래스 상속받았을 경우
- 부모 클래스 수정 시 자식 클래스 또한 수정됨
// 가능
class 자식클래스 extends 부모클래스1 {
...
}
// 불가능
class 자식클래스 extends 부모클래스1, 부모클래스2 {
// 다중 상속을 허용하지 않아 여러 개의 부모 클래스 상속 불가
...
}
예시!!
extends A :: A class 상속
public class A { int field1; void method1() {...} } public class B extends A { String field2; void method2() {...} }
final 클래스
- 클래스, 필드, 메소드 선언 시 사용
- 초기값 설정 후 더 이상 값 변경이 안 됨
- 최종적인 클래스이기 때문에 상속 불가
- 즉, 부모 클래스가 될 수 없어서 자식 클래스를 만들 수 없음
// 주로 사용하는 방법
public final class String { ... }
// 사용 불가능 --> extends(X)
public class NewString extends String { ... }
final 메소드
- 메소드 선언 시 final 키워드 붙이면 최종적인 메소드가 되기 때문에 재정의할 수 없음
// final 메소드
public final void stop() {
...
}
- 위에서 Car 클래스의 stop() 메소드를 final로 선언
- SportsCar 클래스에서 stop() 메소드 재정의 불가!
package sec01.exam06;
public class SportsCar extends Car {
@Override
public void speedUp() { speed += 10; }
@Override
public void stop() {
// 여기서 재정의 불가!
}
}
접근제한자
- public // protected // default // private
protected
- 같은 패키지 내에서는 default와 같이 접근 제한이 없음
- 다른 패키지에서는 자식 클래스의 접근만 허용
- 필드, 생성자, 메소드 선언에 사용 가능
728x90
반응형
'Java' 카테고리의 다른 글
Java - 개념정리 6 (0) | 2022.04.07 |
---|---|
Java - 개념정리 5 (0) | 2022.04.05 |
Java - 개념정리 3 (0) | 2022.04.05 |
Java - 개념정리 2 (0) | 2022.04.05 |
Java - 개념정리 1 (0) | 2022.04.05 |