위의 클래스 다이어그램을 아래의 자바 코드로 변환할 수 있다.
abstract class SavingAccount{
protected int period;
protected double rate;
protected double money;
public abstract double calcInterest();
}
(+) 기호 ⇒ public
(-) 기호 ⇒ private
(#) 기호 ⇒ protected
콜론 앞에는 필드/메소드의 이름, 콜론 뒤에는 필드/메소드의 타입/반환형
접근 제한자라고도 하며 멤버 또는 클래스에 사용
💡 해당하는 멤버 또는 클래스를 외부에서 접근하지 못하도록 제한하는 역할을 한다
클래스 제한, 필드와 메소드 제한, 생성자 제한
접근 제한 | 적용 대상 | 접근할 수 있는 영역 |
---|---|---|
public | 클래스, 필드, 생성자, 메소드 | 클래스 내부, 동일 패키지, 자손 클래스, 이외 영역 |
protected | 필드, 생성자, 메소드 | 클래스 내부, 동일 패키지, 자손 클래스 |
default | 클래스, 필드, 생성자, 메소드 | 클래스 내부, 동일 패키지 |
private | 필드, 생성자, 메소드 | 클래스 내부 |
추상 메소드는 선언만 해주면 됨
추상 클래스를 상속받은 자식 클래스는 반드시 추상 메소드를 오버라이딩 해야 한다
객체로 생성 불가
💡 메소드명이 같고, 매개변수의 개수나 타입이 달라야 한다
주의 : 매개변수의 갯수와 타입이 모두 같고 이름만 다른 경우는 오버로딩이 성립하지 않는다
💡 부모 클래스로부터 상속받은 메소드를 자식 클래스에서 재정의 하는 것
메소드명, 매개변수, 리턴 값이 모두 같아야 한다