728x90
0. 오버라이딩과 오버로딩
오버라이딩 : 올라타기
오버로딩 : 적재하기
pakage polymorphism01;
public class Animal {
public String name;
public void showName() {
System.out.println("안녕 나는 %s야. 반가워/n", name);
}
}
===============================================================================================
pakage polymorphism01;
public class Penguin extends Animal {
public String habitat;
public void showHabitat() {
System.out.println("%s는 %s에 살아/n", name, habitat);
}
// 오버라이딩 - 재정의 : 상위 클래스의 메서드와 같은 메서드 이름, 같은 인자 리스트
public void showName() {
System.out.println("어머 내 이름은 알아서 뭐하게요?";
}
// 오버로딩 - 중복 정의 : 같은 메서드 이름, 다른 인자 리스트
public void showName() {
System.out.printf("%s 안녕, 나는 %s라고 해/n", yourName, name);
===============================================================================================
pakage polymorphism01;
public class Driver {
public static void main(String[] args) {
Penguin pororo =new Penguin;
pororo.name = "뽀로로";
pororo.habitat = "남극";
pororo.showName();
pororo.showName("초보람보");
pororo.showHabitat();
Animal pingu = new Penguin();
pingu.name = "핑구";
pingu.showName();
}
}
// 코드 출처 : 스프링 입문을 위한 자바객체지향의 원리와 이해
1. 다형성
다형성과 오버라이딩을 같이 놓고 볼 때 다형성의 특징은 하나의 객체가 여러 가지 타입을 가질 수 있다고 하는 특성을 의미한다. 이 경우 상속 받는 자식 클래스가 생성한 객체는 부모 클래스의 타입을 기본적으로 상속받았기 때문에 언제나 부모 클래스의 타입을 사용할 수 있다.
728x90
'자바☕' 카테고리의 다른 글
자바 표준 Annotation (0) | 2022.12.06 |
---|---|
Dynamic Dispatch : 다형성의 일부 (0) | 2022.12.02 |
12. 01 심화 강의 : 인터페이스 (0) | 2022.12.01 |
Immutable vs Mutable (0) | 2022.12.01 |
11. 19 내부 클래스/ static vs final vs static final (0) | 2022.11.19 |