상속
- 자식 클래스는 클래스 선언시 extends 다음에 부모 클래스 이름을 적어줌
- 자식 클래스의 생성자가 호출되면 자동으로 부모 클래스의 매개 변수 없는 생성자가 실행됨.
- 자바는 다중 상속이 안됨. extends 뒤에 클래스를 하나만 써야함.
- 부모 클래스에 기본생성자를 만들어놓지않고 매개변수를 받는 생성자만 만들어놓으면, 자식 클래스의 생성자가 실행될 때 에러 발생. 자식 클래스의 생성자가 실행될 때 부모 클래스의 기본 생성자를 찾기 때문
->super()사용. super(null);
super()
- 메소드처럼 super()로 사용시 부모 클래스의 생성자를 호출한다는 것을 의미.
- super.printName()으로 사용시 부모 클래스에 있는 printName()이라는 메소드 호출을 의미
- 생성자에서는 super()를 명시적으로 지정하지 않으면, 자동으로 super()가 추가됨
- 만약 부모 클래스에 매개 변수가 없는 생성자 없이 매개 변수있는 생성만 정의되어있으면 super()에서 매개변수있는 생성자 호출해야함
메소드 Overriding
- 접근 제어자, 리턴 타입, 메소드 이름, 매개 변수 타입 및 개수가 모두 동일해야함
- 부모 클래스에 선언되어 있는 메소드와 동일하게 선언된 메소드를 자식 클래스에 선언하면, 자식 클래스의 메소드만 실행됨
- 동일하게 선언됨=동일한 시그네쳐를 가짐. (시그네쳐:메소드 이름,매개변수의 타입 및 개수)
- Overriding된 메소드는 부모 클래스와 동일한 리턴 타입을 가져야함
- Overriding된 메소드의 접근 제어자는 부모 클래스에 있는 메소드와 달라도 되지만, 접근 권한이 확장되는 경우에만 허용.
'Languages > Java' 카테고리의 다른 글
[Java] 인터페이스, 추상클래스, enum (2) | 2023.08.29 |
---|---|
[Java] 형변환, 다형성 (0) | 2023.08.22 |
[Java] 패키지, 접근제어자 (0) | 2023.08.19 |
[Java] 매개 변수 지정 (0) | 2023.08.19 |
[Java] Static과 Static 블록 (0) | 2023.08.11 |