My footsteps

단일 상속,오버라이딩,패키지,import문,제어자,final,접근제어자,다형성 본문

예습/이론

단일 상속,오버라이딩,패키지,import문,제어자,final,접근제어자,다형성

밀김 2023. 1. 5. 10:54
728x90

 

 

 

 

- 부모가 없는 클래스는 자동으로 Object가 부모가 됨

 

- 오버라이딩 : 상속받은 조상의 매서드를 자신에 맞게 변경하는것, 선언부 변경 불가하고 내용만 변경 가능 

 

 

 

1. 선언부가 조상 클래스의 매서드와 일치해야함

2. 접근 제어자를 조상 클래스의 메서드보다 좁은 범위로 변경할수 없다

3. 예외는 조상 클래스의 매서드보다 많이 선언할수 없다

 

 

 

 

 

- 참조변수 super (iv와 lv를 구분하려고 쓰는 this와 거의 비슷) : 객체 자신을 가리키는 참조변수. 인스턴스 메서드(생성자) 내에서만 존재할수있고 조상의 멤버와 자신의 멤버를 구별할때 사용할수있다

 

- 조상의 기본생성자는 반드시 첫줄에 호출해야함 그렇지 않으면 컴파일러가 자동으로 생성자 첫줄에 super() 삽입

(* 모든 생성자는 첫줄에 다른 생성자를 호출해야한다*)

 

 

 

- 패키지 : 서로 관련된 클래스의 묶음,소스파일의 첫번째 문장으로 단 한번만 선언

 

 

 

  

- import문을 사용하면 클래스를 사용할때 패키지이름을 생략할수있다, 컴파일러에게 클래스가 속한 패키지를 알려준다

( ct+sf+O = 자동 import문 생성)

 

- *(=모든 클래스) 는 import하지 않아도 됨

 

- import 패키지명 *; 

 

- 이름이 같은 클래스를 쓰는 이름이 다른 두패키지를 import할때는 클래스앞에 패키지명을 꼭 붙여야한다. * 별표 못씀

 

 

 

 

 

- 제어자 : 클래스와 클래스 멤버(멤버 변수,매서드)에 부가적인 의미를 부여함

(접근 제어자 public,protected,(default),private / 그 외 static final abstract)

 

- 하나의 대상에 여러 제어자를 같이 사용할수 있지만, 접근제어자는 하나만 써야함 제일 왼쪽에!

 

 

 

- final이 붙으면?

제어자 대상 의미
final 클래스 변경될수 없고,확장할수없는 클래스가 됨. 다른 클래스의 조상이 되리수 없다
매서드 변경될수 없는 매섣,. 오버라이딩도 불가능
멤버,지역변수 값을 변경할수 없는 리터럴,즉 상수가 됨

 

 

 

 

 

- absstract : 추상의,미완성의 (추상클래스에 사용) , 미완성 설계도, 추상클래스에 인스턴스 생성불가 = 제품생성불가

 

 

 

 

 

 

 

 

 

 

 

 

 

- 다형성 : 조상타입 참조변수로 자손타입 객체를 다루는것 (자손타입이 조상가리키는건 안됨) 

 

- 그래서 다형성일때는 참조변수의 타입과 인스턴스타입이 일치하지 않을수도 있다

 

 

 

 

 

 

 

 

 

728x90