개인공부/[JAVA] / / 2021. 1. 17. 18:02

[JAVA] Java 상속과 Protected 접근제어자

상속의 사용 이유

 

유지보수가 쉽고, 확장성 있는 시스템 설계가 가능하다.

 

클래스에서 상속의 의미

-새로운 클래스를 정의할 때 이미 구현된 클래스를 상속받아서 속성이나 기능이 확장되는 클래스를 구현한다.
->기존의 클래스의 기능을 가져다가 좀더 확장된 기능을 구현한다.


-다중 상속 불가 (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
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유