반응형

[학습일지] Java & SpringBoot로 시작하는 웹 프로그래밍 : 자바 인강 4주차


 

Java & SpringBoot로 시작하는 웹 프로그래밍 강의는 전체 분량이 8주 분량이고 이번이 4주차로 절반이 지났다.

4주차에서는 3주차에 이어서 객체에 대해서 좀 더 깊게 다룬다.

 

 


상속

 

자바에서 모든 클래스는 Obejct class를 상속받는다.

상속은 extends 키워드로 단 하나의 클래스만 상속 가능하다.

 

클래스가 생성되는 순서는 부모 클래스 -> 자손 클래스이다.

그 이유는 super 키워드 때문인데, super 키워드는 생성자 제일 상단에 위치하여 부모 클래스의 생성자를 호출한다.

자손은 부모의 필드와 메서드를 상속받지만 생성자는 상속받지 않는다.

 

부모 클래스는 일반적인 개념이고

자손 클래스는 부모 클래스를 좀 더 구체화한 개념이다.

 

 

main에서 Child의 생성자를 이용해서 인스턴스를 생성하면

Child class 생성자에서 super()로 Parent class의 생성자를 호출하고

Parent class 생성자에서 super()로 Object class를 호출한다.

 

호출 순서: main -> Child -> Parent -> Object

생성 순서: Object -> Parent -> Child -> main

 

super() 키워드는 항상 생성자의 첫 줄에 위치하고 있어야 하며 이는 this()와 같다.

그러므로 한 생성자에서 super()와 this()를 같이 사용하는 것은 불가능하다.

 

 기본 생성자와 마찬가지로 명시하지 않았다면 super()를 컴파일러가 자동으로 추가한다.

상위 클래스에 기본 생성자가 없다면 super(변수)로 명시적으로 부모 생성자를 호출해줘야 한다.

 


 

부모 클래스에는 parentMethod가 있다.

자손 클래스에는 childMethod와 부모 메서드를 재정의한 parentMethod가 있다.

 

 

Child 인스턴스의 타입이 Child라면 부모 메서드와 자손 메서드를 전부 사용할 수 있다.

이때 부모 메서드를 자손 메서드가 오버 라이딩했다면 오버 라이딩된 자손 메서드를 사용한다.

 

형 변환하여 타입을 부모로 바꾸게 되면 자손 메서드를 사용할 수 없게 된다.

타입이 부모이므로 자손 필드와 메서드에 접근할 수 없게 된다.

 

단, 부모 메서드가 오버 라이딩되어있다면 오버 라이딩된 메서드를 사용한다.

오버라이딩된 메서드를 통해 자손의 필드와 메서드에 접근하여 사용할 수 있다.

 

 


추상 클래스

 

추상 클래스는 추상 메서드를 1개 이상 갖고 있는 클래스이다.

추상 메서드는 구현부가 없는 메서드이다.

 

추상 클래스는 인스턴스화 될 수 없고 자손 클래스가 상속하여 사용한다.

상속받은 자손 클래스는 추상 메서드를 모두 구현해야 한다.

 

 

 


 

 

 

 

반응형

+ Recent posts