티스토리 뷰

41기 개발자과정

20211217 Super, final

segment 2021. 12. 17. 11:12

01. 

 super
 - 슈퍼클래스 접근 연산자
 - super() -> 슈퍼클래스 생성자 메서드

class Super01{

	protected String userName;
	
	public Super01(){
		System.out.println("Super01 - 1");
	}
	public Super01(String str){
		System.out.println("Super01 - 2");
	}
}

class Sub01 extends Super01{

	public Sub01() {
		super();
	}
	public Sub01(String str) {
		super(str);
	}

}

public class JavaBasic01 {

	public static void main(String[] args) {
	Sub01 sub01 = new Sub01("");
}

 

 

 

02. 멤버에 접근하기

- 슈퍼 크래스의 private 멤버는 상속자인 서브 클래스도 접근 할 수 없다.

- protected 는 패키지가 달라도 서브클래스에서 접근 가능하다.

 

1) 슈퍼클래스

2) 서브클래스

3) 

서브클래스의 변수에 들어간다.

sub01.userName ="홍길동"

--> 콘솔창에 출력 하면

super 클래스의 print 메서드는 null 값을 출력하고,

서브 클래스의 printSub 클래스만 홍길동 값을 출력했다.


03. 오버라이딩

1) 슈퍼클래스의 show 메서드

2) 서브 클래스의 show 메서드

- super() -> 슈퍼클래스 생성자 메서드
- super.슈퍼클래스멤버 -> 슈퍼클래스가 가진 멤버 접근

3) 실행

4) 콘솔창

오버라이딩과 super 메서드를 활용하면

슈퍼클래스와 서브클래스의 메서드를 함께 호출 할 수 있다.

2-1)

오버라이딩하고 super 를 주석처리 했을때

2-2)

콘솔창은 우선권을 가지는 서브클래스만 출력된다.


04. final 키워드

1. 클래스

1) Super 02 클래스 앞에 final 을 붙이면 상속할 수 없다.

2) Sub 02 가 Super 02 를 상속할 수 없다는 에러메시지 나옴.

 

2. 메서드

1) 메서드 앞에 final 을 붙일 경우 상수.


공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG more
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함