2021.06.04
오늘부터 배우는 내용이 매우 중요함
class B extends A{}
-> B를 A에게로부터 상속을 받는다.
-> extends 키워드 뒤에는 단 하나의 클래스만 올 수 있다.
-> 자바는 단일 상속 만을 지원한다.
모든 코딩(일반 고객, vip고객)을 Customer에 한곳에 넣을수도 있지만 그렇게 되면 나중에 추가 요소를 추가하기가 힘들고
코딩 자체가 복잡해 지게 된다.
--> 그러기 떄문에 일반고객을 부모로 잡고 vip고객을 자식으로 잡으면서 상속을 사용하면 편하다.
코딩이 길기 떄문에 정리가 한번에 찍을수가 없음;;
그러기 떄문에 반드시 코딩한 내용을 이클립스에서 확인해볼것!!
하위 클래스를 생성을 하게 되면 상위 클래스가 먼저 생성된다.
즉 2강의 new VipCustomer()을 호출하면 프로그래밍상 Customer이 먼저 호출되고 그후
VipCustomer이 호출됨
--> 2강과 마찬가지로 이클립스 코딩을 참고
--> 이 강의는 한번쯤 들어볼 필요가 있다고 생각( 코딩을 계속 바꿔가면서 결과를 보기때문에 다 기록을 불가능)
--> this 키워드를 사용해서 생성자 함수를 만들떄와 default생성자 함수를 만들떄랑 차이점을 알려줌(super키워드에 대한 내용)
-> super : 상속받은 생성자를 호출해주는 기능
--> 만약 this 키워드를 사용하여 생성자를 만들게 된다면
--> super에 값을 입력하여 명시적으로 호출해 주어야 한다.
Customer A = new VipCustomer();
-> 사용가능
-> 왜냐하면 VipCustomer()을 호출하면 Customer도 자동으로 호출 되기 떄문에.
--> 형 변환(업캐스팅) 이라고함
오버라이딩 : 상위 클래스에 정의된 내용이 하위 클래스에 구현할 내용과 맞지 않는 경우 하위 클래스에서 동일한 이름의 메서드를 재정의할 수 있음
-> VipCustomer클래스의 calcPrice는 할인율이 적용되지 않음
-> 이름이 같은 함수코드를 사용할떄 override를 사용.