상속의 사용 이유
유지보수가 쉽고, 확장성 있는 시스템 설계가 가능하다.
클래스에서 상속의 의미
-새로운 클래스를 정의할 때 이미 구현된 클래스를 상속받아서 속성이나 기능이 확장되는 클래스를 구현한다.
->기존의 클래스의 기능을 가져다가 좀더 확장된 기능을 구현한다.
-다중 상속 불가 (extends 뒤에 하나만 가능 여러 클래스에서 상속받는 것 불가하다)
ex) class B extends A ( B가 A를 상속받음)
Protected 접근 제어자
-상속관계에서 사용될 수 있는 접근 제어 자이다.
예를 들어 다음과 같이 상위 클래스, 하위 클래스가 정의되어있다 하면 customerGrade="VIP"; 에서 문제가 생긴다.
public class Customer { //상위 클래스
private int customerID;
private String customerName;
private String customerGrade;
}
public class VIPCustomer extends Customer{ // 하위 클래스
double salesRatio;
private int agentID;
public VIPCustomer(){
customerGrade="VIP"; // 문제지점
}
}
상위 클래스에서 private으로 변수를 생성하면 다른 외부 클래스에서는 일절 접근 불가하기 때문이고, 상속된 클래스도 예외가 없다.
즉, 상속된 하위 클래스까지는 접근을 허용하는 protect 접근제어자로 변경을 해주어야 한다.
public class Customer { //상위 클래스
private int customerID;
private String customerName;
protected String customerGrade;
}
'개인공부 > [JAVA]' 카테고리의 다른 글
[JAVA] 자바 Scanner 클래스 (0) | 2021.12.05 |
---|---|
[JAVA] 묵시적 형변환/ 업캐스팅 (Upcasting) (0) | 2021.01.17 |