티스토리 뷰
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 을 붙일 경우 상수.
'41기 개발자과정' 카테고리의 다른 글
20211221 스프링부트 - cafe24 배포 오류확인 (0) | 2021.12.21 |
---|---|
20211217 Object 클래스 (0) | 2021.12.17 |
20211213 SpringBoot, MyBatis 회원등록 (0) | 2021.12.15 |
20211208 SpringBoot, MyBatis 회원조회 (0) | 2021.12.14 |
20211208 MVC 실행 흐름 (0) | 2021.12.08 |