일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- #홍콩2층버스
- #홍콩 #홍콩여행 #홍콩한달살기 #옥토퍼스카드
- #라이브러리 #개발자 #REACT #Bootstrap #REST API #웹 디자인 #디자인 툴
- #홍콩 #홍콩여행 #홍콩한달살기 #홍콩사이언스파크 #홍콩산책 #홍콩야경 #홍콩턱돌이
- #라이브러리 #개발자 #REACT #Bootstrap
- #홍콩여행 #홍콩국가 #홍콩지도 #홍콩날씨
- #홍콩 #홍콩여애 #홍콩한달살기 #베트남식당 #viet'schoice #외식 #카레 #양지머리카레 #양지머리 #고기쌀국수 #육수존맛 #레몬차 #밀크티 #shatin #홍콩쇼핑 #asus노트북 #어댑터 #홍콩돼지코
- #홍콩쌀국수 #탐차이
- forward #include #param
- #홍콩 #홍콩한달살기 #홍콩버스 #버스어플 #홍콩음식 #홍콩여행 #kmb #lwb#홍
- #라이브러리 #개발자 #REACT #Bootstrap #Visual Studio
- #라이브러리
- #홍콩 #홍콩여행 #홍콩한달살기 #홍콩집밥 #홍콩생활 #홍콩베이징구스 #홍콩산책 #홍콩조깅 #홍콩우편함
- JSP #액션태그 #
- Servlet #JSP #GET #POST #클라이언트
- #국비 #국비학원 #IT #개발자 #프로그래머 #신입 #코딩 #안드로이드 #자바 #JAVA #오라클 #Oracle #SQL #MYSQL #HTML #CSS #JAVASCRIPT #자바스크립트 #서블릿 #SERVLET #JSP #자바스프링 #데이터베이스 #프레임워크
- 서블릿 #Servlet #Request #Response #개발자
- JSP #표현언어 #page #include #taglib
- 백엔드개념 #WAS
- 블로그 태그 #국비 #국비학원 #IT #개발자 #프로그래머 #신입 #코딩 #안드로이드 #자바 #JAVA #오라클 #Oracle #SQL #MYSQL #HTML #CSS #JAVASCRIPT #자바스크립트 #서블릿 #SERVLET #JSP #자바스프링 #데이터베이스 #
- #라이브러리 #개발자 #REACT #Bootstrap #REST API
- Today
- Total
기분좋음
국비 12 일차 본문
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 누르고 메소드 누르면 해당 메소드로 이동