오버로드 : 같은 메서드명에 ()안에 서로 다른 타입이거나 개수가 다른게 여러개....
오버라이드 : @Overload라는 어노테이션을 선언하기 컴파일러가 검증? 하여 이 메서드는 어버라이드 했구나 판단, 부모의 메서드를 사용하지 않고 오버라이드 된 자식의 메서드를 사용함
-> 오버라이드는 부모의 것을 버리고, 자식의 것이 출력된다.
super는 부모의 참조변수이다.
this는 자식의 참조변수이다.
부모 상속을 받았다. ( 자식 것 출력 )
// 재정의
public String printInfo() { return "이름 : " + name + "\n" + "스피드 : " + speed + "\n" + "가격 : " + price + "\n" + "설명 : " + descirption; } @Override
public String printInfo() { return "이름 : " + super.getName() + "\n" + "스피드 : " + super.getSpeed() + "\n" + "가격 : " + super.getSpeed() + "\n" + "설명 : " + super.getDescirption() + "\n" + "차 종류 : " + kind + "\n" + "연료 종료 : " + fueltype + "\n"; } 그래도 자식 것을 출력하고 싶다면, @Override
public String printInfo2() { return super.printInfo2(); } |
상속
1. 물려받는거(잘못된 표현)
-> 사실 독립적으로 자식들에게 중복해서 각기 name, age 등을 줄 수 있다.
2. 부모 클래스에 공통된 속성들을 놓아두기
-> 즉, User 클래스에 name, age 등 공통으로 들어가는 속성들을 상속받아서 사용하는 것
3. 상위 클래스(부모)에 공통된 속성들을 모아두고 자식 클래스에서 상속받아서 쓰는 것
생략을 해두 모관
- 디폴트 생성자
- 부모를 가리키는 참조변수 super
// 자식 클래스가 판단, 공통인 것을 부모로부터 extend해서 사용하기
'언어 > 자바' 카테고리의 다른 글
인터페이스 vs 추상클래스 (0) | 2025.06.04 |
---|---|
다운케스팅, 다형성 (0) | 2025.06.02 |
static - 핵심 (0) | 2025.05.29 |
Call by Value vs Call by Reference (0) | 2025.05.29 |
참조변수 (0) | 2025.05.28 |