객체지향 패러다임
- 캡슐화
- 추상화
- 다형성
- 상속
다형성의 사전적 정의
다형성이란 프로그램 언어 각 요소들(상수, 변수, 식, 객체, 메소드 등)이 다양한 자료형(type)에 속하는 것이 허가되는 성질을 가리킨다.
- 하나의 타입에 여러 객체를 대입할 수 있는 성질
다형성 구현을 위해
- 여러 객체들 중 공통 특성을 타입으로 추상화 시키고, 이를 상속 해야한다.
예시
오버라이딩 전
public class Pig {
public void say() {
System.out.println("꿀꿀");
}
}
public class Bird {
public void say() {
System.out.println("짹짹");
}
}
public class Humen {
public void say() {
System.out.println("집 가고 싶다.");
}
}
public class Main {
public static void main(String[] args) {
Pig pig = new Pig();
Bird bird = new Bird();
Humen humen = new Humen();
pig.say();
bird.say();
humen.say();
}
}
결과 -
꿀꿀
짹짹
집 가고 싶다
오버라이딩 후
public interface Animal {
void say();
}
public class Pig implements Animal{
public void say() {
System.out.println("꿀꿀");
}
}
public class Bird implements Animal {
public void say() {
System.out.println("짹짹");
}
}
public class Humen implements Animal {
public void say() {
System.out.println("집 가고 싶다.");
}
}
public class Main {
public static void main(String[] args) {
list<Animal> animals = Arrays.asList(new Pig(), new Bird(), new Humen());
for (Animal animal : animals){
animal.say();
}
}
}
결과 -
꿀꿀
짹짹
집 가고 싶다