Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
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 31
Tags more
Archives
Today
Total
관리 메뉴

기분좋음

국비 12 일차 본문

IT 포트폴리오/국비지원교육 Diary

국비 12 일차

기분좋음:) 2021. 12. 29. 19:28
반응형

 

9강 상속과 다형성

상속의 개념 클래스에서도 물려 줄 수있는것이  클래스가 가지고 있는 멤버 이다.

물려주는쪽 - 상위(부모)클래스

물려받는쪽 - 하위(자식)클래스

다중상속 불가

 

상속의 장점

이미 개발된 클래스를 재사용 하여 중복되는 코드를 줄임

부모클래스 한번의 수정으로 자식의 클래스 모두 변경 용이

 

접근제한자에 따라 상속받는 범위 다름

이때도 get메소드, set메소드로 가져옴

 

자식클래스는 가지고 있지 않지만 부모클래스가 가지고 있는 멤버를 이용할 수 있다.

 

부모생성자의 호출

클래스도 마찬가지로 자식 인스턴스를 생성할 때 자동으로 부모 인스턴스가 생성됨

자식 클래스에서 부모의 멤버를 호출하는 키워드가 super 이다

그중에 부모의 생성자를 호출하는 방법은 super()이다.

 

public child() { super() {} } //자식 생성자

super()는 부모의 기본 생성자를 호출한다. (자동호출)

반드시 자식 생성자 첫줄에 위치해야한다. 

 

정적멤버

부모 클래스내에 있는 정적(static)멤버도 접근제어자가 허용하는 한 접근이 가능하다.

정적 멤버는 모든 클래스가 공유하는 정보이므로 자식크래스에서 수정해면 부모 클래스에서도 반영된다.

 

메소드 오버라이딩

-상속된 메소드의 내용이 자식클래스에 맞지 않을 경우, 자식 클래스에서 동일한 메소드를 재정의 하는것을 의미

-메소드가 오버라이딩 되었다면 부모 객체의 메소드는 숨겨지기 때문에 부모 메소드는 더이상 사용 X

-자식 객체에서 메소드를 호출하면 오버라이딩된 자식 메소드가 호출됨

-메소드 재정의

 

오버라이딩 규칙 

부모 메소드와 동일한 구조

메소드 이름, 매개변수의 특징 (개수,타입,순서),반환 타입 같아야함

 

오버라이딩 확인

@Override - 부모랑 구조가 다른지 모를때 확인하는 법(어노테이션)

접근제한을 더 강하게 오버라이딩 할수 없다.

새로운 예외 추가할수 없다.

 

메소드 오버라이딩

부모클래스 public 인데 자식클래스에서 오버라이딩을 default나 private로 선언할수 없다.

 

메소드 오버라이딩 할 경우 부모의 메소드는 자식객체에서 사용할 수없다.

부모 메소드를 사용해야될때

super.필드 super.메소드() 

 

접근제어자 protected

다른 패키지이지만 상속 관계일 경우 접근 허용

 

상속받았을 때는 new연산자를 사용해서 생성자 호출할수없고

자식 생성자에서 super()로 생성자 호출

 

클래스 타입 변환

class a{}

class b extends a{}

 a 변수명  = new b() ;

메소드 재정의 + 타입 변환 = 다형성

 

부모타입 변수 =  자식타입; (자동 타입 변환)

Cat cat = new Cat();

Animal animal = cat;

 

바로 위 부모클래스가 아니더라도 상속 계층에서 상위타입인 경우 자동 타입 변환이 가능

 

부모타입으로 자동 타입 변환 이후에는 부모 클래스에 선언된 필드 및 메소드만 접근 가능

예외적으로 메소드가 자식클래스에서 재정의 될 경우 자식클래스의 메소드가 대신 호출

 

다형성 

하나의 타입(부모타입)에 여러가지 인스턴스(자식타입)를 담을수 있다.

부모클래스로 타입변환을 허용한다.

부모타입에 모든 자식객체가 대입 가능

 

다형성 정리

참조변수가 부모타입일때와 자식타입일때의 차이

=>참조변수로 사용할수 있는 멤버의 개수가 달라진다.

자손 타입의 참조변수로 조상타입의 객체를 가리길수 있나요? => 허용되지 않습니다. (강제변환은 가능)

 

강제타입변환

부모타입을 자식타입으로 변환

자식타입 = (자식) 부모객체

->조건 : 자식타입이 부모타입으로 자동 타입변환한후 다시 반대로 변환할때 만 사용가능

 

 

 

 

 

tip - ctrl 누르고 메소드 누르면 해당 메소드로 이동

반응형

'IT 포트폴리오 > 국비지원교육 Diary' 카테고리의 다른 글

국비 14 일차  (0) 2021.12.31
국비 13 일차  (0) 2021.12.30
국비 11일차  (0) 2021.12.28
국비 10 일차  (0) 2021.12.24
국비 9일차  (0) 2021.12.23